[X86][SSE] Added tests for insertion of zero elements into vectors
[oota-llvm.git] / test / CodeGen / X86 / 2012-07-10-extload64.ll
index 3284f5e7e383b7f01ce048009ea318f33e62d64e..a366102fbd74251b22e0ddae49b549e7f96c0dc0 100644 (file)
@@ -3,11 +3,30 @@
 ; CHECK: load_store
 define void @load_store(<4 x i16>* %in) {
 entry:
-  %A27 = load <4 x i16>* %in, align 4
+; CHECK: pmovzxwd
+  %A27 = load <4 x i16>, <4 x i16>* %in, align 4
   %A28 = add <4 x i16> %A27, %A27
+; CHECK: movq
   store <4 x i16> %A28, <4 x i16>* %in, align 4
   ret void
-; CHECK: movd
-; CHECK: pinsrd
 ; CHECK: ret
 }
+
+; Make sure that we store a 64bit value, even on 32bit systems.
+;CHECK-LABEL: store_64:
+define void @store_64(<2 x i32>* %ptr) {
+BB:
+  store <2 x i32> zeroinitializer, <2 x i32>* %ptr
+  ret void
+;CHECK: movlps
+;CHECK: ret
+}
+
+;CHECK-LABEL: load_64:
+define <2 x i32> @load_64(<2 x i32>* %ptr) {
+BB:
+  %t = load <2 x i32>, <2 x i32>* %ptr
+  ret <2 x i32> %t
+;CHECK: pmovzxdq
+;CHECK: ret
+}