[x86] Factor out the zero vector insertion logic in the new vector
[oota-llvm.git] / test / CodeGen / X86 / vec_return.ll
index 2b2d9540314bdaa57db962f7d0cfcf2b6841b82f..f7fcd032cab3608725b4bd9f67ebbd65e6e45a64 100644 (file)
@@ -1,5 +1,16 @@
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -mcpu=yonah
+; RUN: llc < %s -march=x86 -mattr=+sse2 | FileCheck %s
 
-<2 x double> %test() {
-       ret <2 x double> <double 0.0, double 0.0>
+; 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 {{.*}}{{CPI|__xmm@}}
+define <4 x i32> @test2() nounwind  {
+       ret <4 x i32> < i32 0, i32 0, i32 1, i32 0 >
 }