summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2010-02-18 22:33:18 +0000
committerMon P Wang <wangmp@apple.com>2010-02-18 22:33:18 +0000
commitc94892513de8361d1c4f71c503834c6f70446a4c (patch)
tree02f0abd82d47c38b34638daf22672264adc1855f /llvm/test/CodeGen
parentaaaf2bfffbd6f4e735ffcd8ce0b578ffaa244a40 (diff)
downloadbcm5719-llvm-c94892513de8361d1c4f71c503834c6f70446a4c.tar.gz
bcm5719-llvm-c94892513de8361d1c4f71c503834c6f70446a4c.zip
getSplatIndex assumes that the first element of the mask contains the splat index
which is not always true if the mask contains undefs. Modified it to return the first non undef value. llvm-svn: 96621
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/X86/vec_shuffle-36.ll17
1 files changed, 12 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/X86/vec_shuffle-36.ll b/llvm/test/CodeGen/X86/vec_shuffle-36.ll
index 8a93a7eeee3..1ea37c881e7 100644
--- a/llvm/test/CodeGen/X86/vec_shuffle-36.ll
+++ b/llvm/test/CodeGen/X86/vec_shuffle-36.ll
@@ -1,9 +1,16 @@
-; RUN: llc < %s -march=x86 -mattr=sse41 -o %t
-; RUN: grep pshufb %t | count 1
-
+; RUN: llc < %s -march=x86-64 -mattr=sse41 | FileCheck %s
define <8 x i16> @shuf6(<8 x i16> %T0, <8 x i16> %T1) nounwind readnone {
+; CHECK: pshufb
+; CHECK-NOT: pshufb
+; CHECK: ret
entry:
- %tmp9 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 3, i32 2, i32 0, i32 2, i32 1, i32 5, i32 6 , i32 undef >
- ret <8 x i16> %tmp9
+ %tmp9 = shufflevector <8 x i16> %T0, <8 x i16> %T1, <8 x i32> < i32 3, i32 2, i32 0, i32 2, i32 1, i32 5, i32 6 , i32 undef >
+ ret <8 x i16> %tmp9
}
+
+define <8 x i16> @shuf7(<8 x i16> %t0) {
+; CHECK: pshufd
+ %tmp10 = shufflevector <8 x i16> %t0, <8 x i16> undef, <8 x i32> < i32 undef, i32 2, i32 2, i32 2, i32 2, i32 2, i32 undef, i32 undef >
+ ret <8 x i16> %tmp10
+} \ No newline at end of file
OpenPOWER on IntegriCloud