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 | 4f45512c2325ef7a62d9fe8538596bd4368aa24c (patch) | |
| tree | 22f921a2e0e30f8b64f41a24bc15e4e4109fe420 /llvm/test/CodeGen/X86/vsplit-and.ll | |
| parent | 60ddba67a883d76743feef04b8dcff262cb87d59 (diff) | |
| download | bcm5719-llvm-4f45512c2325ef7a62d9fe8538596bd4368aa24c.tar.gz bcm5719-llvm-4f45512c2325ef7a62d9fe8538596bd4368aa24c.zip | |
It seems better to scalarize vectors of size 1 instead of widening them.
Add support to widen SETCC.
llvm-svn: 94342
Diffstat (limited to 'llvm/test/CodeGen/X86/vsplit-and.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/vsplit-and.ll | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/vsplit-and.ll b/llvm/test/CodeGen/X86/vsplit-and.ll new file mode 100644 index 00000000000..a247c6eb00d --- /dev/null +++ b/llvm/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 +} |

