[x86] Teach the unpack lowering to try wider element unpacks.
[oota-llvm.git] / test / CodeGen / X86 / vector-trunc.ll
index ea0ff4c208d49bc351adc004a572808b3cb855e9..aebcfff9da75c68ae8b74dcd8deea80bedc47e93 100644 (file)
@@ -6,12 +6,16 @@
 define <4 x i32> @trunc2x2i64(<2 x i64> %a, <2 x i64> %b) {
 ; SSE2-LABEL: trunc2x2i64:
 ; SSE2:       # BB#0: # %entry
-; SSE2-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]
+; SSE2-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]
+; SSE2-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
+; SSE2-NEXT:    punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
 ; SSE2-NEXT:    retq
 ;
 ; SSSE3-LABEL: trunc2x2i64:
 ; SSSE3:       # BB#0: # %entry
-; SSSE3-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]
+; SSSE3-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[0,2,2,3]
+; SSSE3-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
+; SSSE3-NEXT:    punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
 ; SSSE3-NEXT:    retq
 ;
 ; SSE41-LABEL: trunc2x2i64: