diff options
author | Mon P Wang <wangmp@apple.com> | 2010-01-24 00:24:43 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2010-01-24 00:24:43 +0000 |
commit | 6fb474bd3c3e291973ae8e087787090cf2be73f8 (patch) | |
tree | 4b90d9dd82bd1d9b5d96ab61bcfaf49e1f1fe189 /test | |
parent | abb992d6a3d2dc05d3f3c62a367ea8977a7dd070 (diff) | |
download | llvm-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.ll | 22 |
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 +} |