summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/vec_return.ll
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-11-07 19:15:58 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-11-07 19:15:58 +0000
commit3e5d5c53a03e4a08cdb67f8a7f44567f925be9a5 (patch)
treed761303159d13fca2351a75150a2e00d28c58ee6 /test/CodeGen/X86/vec_return.ll
parentd83d98d4eb9595a88b830f5e3f5c6c24fae80df1 (diff)
downloadllvm-3e5d5c53a03e4a08cdb67f8a7f44567f925be9a5.tar.gz
llvm-3e5d5c53a03e4a08cdb67f8a7f44567f925be9a5.tar.bz2
llvm-3e5d5c53a03e4a08cdb67f8a7f44567f925be9a5.tar.xz
Expand V_SET0 to xorps by default.
The xorps instruction is smaller than pxor, so prefer that encoding. The ExecutionDepsFix pass will switch the encoding to pxor and xorpd when appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143996 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/vec_return.ll')
-rw-r--r--test/CodeGen/X86/vec_return.ll13
1 files changed, 9 insertions, 4 deletions
diff --git a/test/CodeGen/X86/vec_return.ll b/test/CodeGen/X86/vec_return.ll
index 676be9b717..d5fc11ecd5 100644
--- a/test/CodeGen/X86/vec_return.ll
+++ b/test/CodeGen/X86/vec_return.ll
@@ -1,12 +1,17 @@
-; RUN: llc < %s -march=x86 -mattr=+sse2 > %t
-; RUN: grep pxor %t | count 1
-; RUN: grep movaps %t | count 1
-; RUN: not grep shuf %t
+; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
+; Without any typed operations, always use the smaller xorps.
+; CHECK: test
+; CHECK: xorps
define <2 x double> @test() {
ret <2 x double> zeroinitializer
}
+; Prefer a constant pool load here.
+; CHECK: test2
+; CHECK-NOT: shuf
+; CHECK: movaps LCP
+; CHECK-NEXT: ret
define <4 x i32> @test2() nounwind {
ret <4 x i32> < i32 0, i32 0, i32 1, i32 0 >
}