xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2012-07-15-vshl.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=x86 -mcpu=corei7 -mattr=+avx
2*9880d681SAndroid Build Coastguard Worker; PR13352
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdeclare <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float>, <8 x float>, <8 x float>) nounwind readnone
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine void @f_f() nounwind {
7*9880d681SAndroid Build Coastguard Workerallocas:
8*9880d681SAndroid Build Coastguard Worker  br label %for_loop29
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerfor_loop29:                                       ; preds = %safe_if_after_true, %allocas
11*9880d681SAndroid Build Coastguard Worker  %indvars.iv596 = phi i64 [ %indvars.iv.next597, %safe_if_after_true ], [ 0, %allocas ]
12*9880d681SAndroid Build Coastguard Worker  %0 = trunc i64 %indvars.iv596 to i32
13*9880d681SAndroid Build Coastguard Worker  %smear.15 = insertelement <16 x i32> undef, i32 %0, i32 15
14*9880d681SAndroid Build Coastguard Worker  %bitop = lshr <16 x i32> zeroinitializer, %smear.15
15*9880d681SAndroid Build Coastguard Worker  %bitop35 = and <16 x i32> %bitop, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
16*9880d681SAndroid Build Coastguard Worker  %bitop35_to_bool = icmp ne <16 x i32> %bitop35, zeroinitializer
17*9880d681SAndroid Build Coastguard Worker  %val_to_boolvec32 = sext <16 x i1> %bitop35_to_bool to <16 x i32>
18*9880d681SAndroid Build Coastguard Worker  %floatmask.i526 = bitcast <16 x i32> %val_to_boolvec32 to <16 x float>
19*9880d681SAndroid Build Coastguard Worker  %mask1.i529 = shufflevector <16 x float> %floatmask.i526, <16 x float> undef, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
20*9880d681SAndroid Build Coastguard Worker  %"internal_mask&function_mask41_any" = icmp eq i32 undef, 0
21*9880d681SAndroid Build Coastguard Worker  br i1 %"internal_mask&function_mask41_any", label %safe_if_after_true, label %safe_if_run_true
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workersafe_if_after_true:                               ; preds = %for_loop29
24*9880d681SAndroid Build Coastguard Worker  %indvars.iv.next597 = add i64 %indvars.iv596, 1
25*9880d681SAndroid Build Coastguard Worker  br label %for_loop29
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Workersafe_if_run_true:                                 ; preds = %for_loop29
28*9880d681SAndroid Build Coastguard Worker  %blend1.i583 = call <8 x float> @llvm.x86.avx.blendv.ps.256(<8 x float> undef, <8 x float> undef, <8 x float> %mask1.i529) nounwind
29*9880d681SAndroid Build Coastguard Worker  unreachable
30*9880d681SAndroid Build Coastguard Worker}
31*9880d681SAndroid Build Coastguard Worker
32