summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2010-01-24 00:24:43 +0000
committerMon P Wang <wangmp@apple.com>2010-01-24 00:24:43 +0000
commit6fb474bd3c3e291973ae8e087787090cf2be73f8 (patch)
tree4b90d9dd82bd1d9b5d96ab61bcfaf49e1f1fe189 /test
parentabb992d6a3d2dc05d3f3c62a367ea8977a7dd070 (diff)
downloadllvm-6fb474bd3c3e291973ae8e087787090cf2be73f8.tar.gz
llvm-6fb474bd3c3e291973ae8e087787090cf2be73f8.tar.bz2
llvm-6fb474bd3c3e291973ae8e087787090cf2be73f8.tar.xz
It seems better to scalarize vectors of size 1 instead of widening them.
Add support to widen SETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94342 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/vsplit-and.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/CodeGen/X86/vsplit-and.ll b/test/CodeGen/X86/vsplit-and.ll
new file mode 100644
index 0000000000..a247c6eb00
--- /dev/null
+++ b/test/CodeGen/X86/vsplit-and.ll
@@ -0,0 +1,22 @@
+; RUN: llc < %s -march=x86 -disable-mmx | FileCheck %s
+
+
+define void @t(<2 x i64>* %dst, <2 x i64> %src1, <2 x i64> %src2) nounwind readonly {
+; CHECK: andb
+ %cmp1 = icmp ne <2 x i64> %src1, zeroinitializer
+ %cmp2 = icmp ne <2 x i64> %src2, zeroinitializer
+ %t1 = and <2 x i1> %cmp1, %cmp2
+ %t2 = sext <2 x i1> %t1 to <2 x i64>
+ store <2 x i64> %t2, <2 x i64>* %dst
+ ret void
+}
+
+define void @t2(<3 x i64>* %dst, <3 x i64> %src1, <3 x i64> %src2) nounwind readonly {
+; CHECK: andb
+ %cmp1 = icmp ne <3 x i64> %src1, zeroinitializer
+ %cmp2 = icmp ne <3 x i64> %src2, zeroinitializer
+ %t1 = and <3 x i1> %cmp1, %cmp2
+ %t2 = sext <3 x i1> %t1 to <3 x i64>
+ store <3 x i64> %t2, <3 x i64>* %dst
+ ret void
+}