xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/2014-08-04-muls-it.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple thumbv7-eabi -arm-restrict-it -filetype asm -o - %s \
2*9880d681SAndroid Build Coastguard Worker; RUN:    | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine arm_aapcscc i32 @function(i32 %i, i32 %j) {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker  %cmp = icmp eq i32 %i, %j
7*9880d681SAndroid Build Coastguard Worker  br i1 %cmp, label %if.then, label %if.end
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %entry
10*9880d681SAndroid Build Coastguard Worker  %mul = mul nsw i32 %i, %i
11*9880d681SAndroid Build Coastguard Worker  br label %if.end
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerif.end:                                           ; preds = %if.then, %entry
14*9880d681SAndroid Build Coastguard Worker  %i.addr.0 = phi i32 [ %mul, %if.then ], [ %i, %entry ]
15*9880d681SAndroid Build Coastguard Worker  ret i32 %i.addr.0
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: function
19*9880d681SAndroid Build Coastguard Worker; CHECK: cmp r0, r1
20*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: mulseq r0, r0, r0
21*9880d681SAndroid Build Coastguard Worker; CHECK: muleq r0, r0, r0
22*9880d681SAndroid Build Coastguard Worker; CHECK: bx lr
23*9880d681SAndroid Build Coastguard Worker
24