xref: /aosp_15_r20/external/llvm/test/CodeGen/Hexagon/vect/vect-splat.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; Extracted from test/CodeGen/Generic/vector.ll: used to loop indefinitely.
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=hexagon -mcpu=hexagonv5 < %s | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker; CHECK: splat_i4
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker%i4 = type <4 x i32>
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Workerdefine void @splat_i4(%i4* %P, %i4* %Q, i32 %X) {
8*9880d681SAndroid Build Coastguard Worker	%tmp = insertelement %i4 undef, i32 %X, i32 0		; <%i4> [#uses=1]
9*9880d681SAndroid Build Coastguard Worker	%tmp2 = insertelement %i4 %tmp, i32 %X, i32 1		; <%i4> [#uses=1]
10*9880d681SAndroid Build Coastguard Worker	%tmp4 = insertelement %i4 %tmp2, i32 %X, i32 2		; <%i4> [#uses=1]
11*9880d681SAndroid Build Coastguard Worker	%tmp6 = insertelement %i4 %tmp4, i32 %X, i32 3		; <%i4> [#uses=1]
12*9880d681SAndroid Build Coastguard Worker	%q = load %i4, %i4* %Q		; <%i4> [#uses=1]
13*9880d681SAndroid Build Coastguard Worker	%R = add %i4 %q, %tmp6		; <%i4> [#uses=1]
14*9880d681SAndroid Build Coastguard Worker	store %i4 %R, %i4* %P
15*9880d681SAndroid Build Coastguard Worker	ret void
16*9880d681SAndroid Build Coastguard Worker}
17