diff options
Diffstat (limited to 'test/CodeGen/Hexagon/vect/vect-splat.ll')
-rw-r--r-- | test/CodeGen/Hexagon/vect/vect-splat.ll | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CodeGen/Hexagon/vect/vect-splat.ll b/test/CodeGen/Hexagon/vect/vect-splat.ll new file mode 100644 index 0000000..3613dbf --- /dev/null +++ b/test/CodeGen/Hexagon/vect/vect-splat.ll @@ -0,0 +1,16 @@ +; Extracted from test/CodeGen/Generic/vector.ll: used to loop indefinitely. +; RUN: llc -march=hexagon -mcpu=hexagonv5 < %s | FileCheck %s +; CHECK: combine + +%i4 = type <4 x i32> + +define void @splat_i4(%i4* %P, %i4* %Q, i32 %X) { + %tmp = insertelement %i4 undef, i32 %X, i32 0 ; <%i4> [#uses=1] + %tmp2 = insertelement %i4 %tmp, i32 %X, i32 1 ; <%i4> [#uses=1] + %tmp4 = insertelement %i4 %tmp2, i32 %X, i32 2 ; <%i4> [#uses=1] + %tmp6 = insertelement %i4 %tmp4, i32 %X, i32 3 ; <%i4> [#uses=1] + %q = load %i4, %i4* %Q ; <%i4> [#uses=1] + %R = add %i4 %q, %tmp6 ; <%i4> [#uses=1] + store %i4 %R, %i4* %P + ret void +} |