diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-10-25 21:59:00 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-10-25 21:59:00 +0000 |
commit | 5962d3ebb8f1aa8299648b8eb631412dfc80b2bd (patch) | |
tree | 4f27459b55dc69203f70f2fa62941aea84df9cfb /test/CodeGen/X86/vec_shuffle-9.ll | |
parent | 9eca5e814da3490ae889a75c93c0191f510b9f1c (diff) |
New shuffle test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31187 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/vec_shuffle-9.ll')
-rw-r--r-- | test/CodeGen/X86/vec_shuffle-9.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/CodeGen/X86/vec_shuffle-9.ll b/test/CodeGen/X86/vec_shuffle-9.ll new file mode 100644 index 0000000000..05b3c77c01 --- /dev/null +++ b/test/CodeGen/X86/vec_shuffle-9.ll @@ -0,0 +1,20 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 && +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep punpck | wc -l | grep 2 && +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | not grep pextrw + +<4 x int> %test(sbyte** %ptr) { +entry: + %tmp = load sbyte** %ptr + %tmp = cast sbyte* %tmp to float* + %tmp = load float* %tmp + %tmp = insertelement <4 x float> undef, float %tmp, uint 0 + %tmp9 = insertelement <4 x float> %tmp, float 0.000000e+00, uint 1 + %tmp10 = insertelement <4 x float> %tmp9, float 0.000000e+00, uint 2 + %tmp11 = insertelement <4 x float> %tmp10, float 0.000000e+00, uint 3 + %tmp21 = cast <4 x float> %tmp11 to <16 x sbyte> + %tmp22 = shufflevector <16 x sbyte> %tmp21, <16 x sbyte> zeroinitializer, <16 x uint> < uint 0, uint 16, uint 1, uint 17, uint 2, uint 18, uint 3, uint 19, uint 4, uint 20, uint 5, uint 21, uint 6, uint 22, uint 7, uint 23 > + %tmp31 = cast <16 x sbyte> %tmp22 to <8 x short> + %tmp = shufflevector <8 x short> zeroinitializer, <8 x short> %tmp31, <8 x uint> < uint 0, uint 8, uint 1, uint 9, uint 2, uint 10, uint 3, uint 11 > + %tmp36 = cast <8 x short> %tmp to <4 x int> + ret <4 x int> %tmp36 +} |