xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/v4i32load-crash.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc --march=x86 --mcpu=x86-64 --mattr=ssse3 < %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc --march=x86-64 --mcpu=x86-64 --mattr=ssse3 < %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker;PR18045:
5*9880d681SAndroid Build Coastguard Worker;Issue of selection for 'v4i32 load'.
6*9880d681SAndroid Build Coastguard Worker;This instruction is not legal for X86 CPUs with sse < 'sse4.1'.
7*9880d681SAndroid Build Coastguard Worker;This node was generated by X86ISelLowering.cpp, EltsFromConsecutiveLoads
8*9880d681SAndroid Build Coastguard Worker;static function after legalize stage.
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker@e = external global [4 x i32], align 4
11*9880d681SAndroid Build Coastguard Worker@f = external global [4 x i32], align 4
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
14*9880d681SAndroid Build Coastguard Workerdefine void @fn3(i32 %el) {
15*9880d681SAndroid Build Coastguard Workerentry:
16*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @e, i32 0, i32 0)
17*9880d681SAndroid Build Coastguard Worker  %1 = load i32, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @e, i32 0, i32 1)
18*9880d681SAndroid Build Coastguard Worker  %2 = load i32, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @e, i32 0, i32 2)
19*9880d681SAndroid Build Coastguard Worker  %3 = load i32, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @e, i32 0, i32 3)
20*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x i32> undef, i32 %0, i32 0
21*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x i32> %4, i32 %1, i32 1
22*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x i32> %5, i32 %2, i32 2
23*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x i32> %6, i32 %3, i32 3
24*9880d681SAndroid Build Coastguard Worker  %8 = add <4 x i32> %6, %7
25*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %8, <4 x i32>* bitcast ([4 x i32]* @f to <4 x i32>*)
26*9880d681SAndroid Build Coastguard Worker  ret void
27*9880d681SAndroid Build Coastguard Worker}
28*9880d681SAndroid Build Coastguard Worker
29