xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/lsr-quadratic-expand.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=x86-64 < %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine void @dw2102_i2c_transfer() nounwind {
4*9880d681SAndroid Build Coastguard Workerentry:
5*9880d681SAndroid Build Coastguard Worker  br label %bb
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Workerbb:                                               ; preds = %bb, %entry
8*9880d681SAndroid Build Coastguard Worker  %z = phi i64 [ 0, %entry ], [ %z3, %bb ]
9*9880d681SAndroid Build Coastguard Worker  %z1 = phi i16 [ undef, %entry ], [ %z6, %bb ]
10*9880d681SAndroid Build Coastguard Worker  %z2 = phi i32 [ 0, %entry ], [ %z8, %bb ]
11*9880d681SAndroid Build Coastguard Worker  %z3 = add i64 %z, 1
12*9880d681SAndroid Build Coastguard Worker  %z4 = zext i16 %z1 to i32
13*9880d681SAndroid Build Coastguard Worker  %z5 = add nsw i32 %z4, %z2
14*9880d681SAndroid Build Coastguard Worker  %z6 = trunc i32 %z5 to i16
15*9880d681SAndroid Build Coastguard Worker  call fastcc void @dw210x_op_rw(i16 zeroext %z6)
16*9880d681SAndroid Build Coastguard Worker  %z7 = getelementptr i8, i8* null, i64 %z
17*9880d681SAndroid Build Coastguard Worker  store i8 undef, i8* %z7, align 1
18*9880d681SAndroid Build Coastguard Worker  %z8 = add nsw i32 %z2, 1
19*9880d681SAndroid Build Coastguard Worker  br label %bb
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerdeclare fastcc void @dw210x_op_rw(i16 zeroext) nounwind
23