@@ -1726,6 +1726,37 @@ define <2 x double> @test_mm_min_sd(<2 x double> %a0, <2 x double> %a1) nounwind
1726
1726
}
1727
1727
declare <2 x double > @llvm.x86.sse2.min.sd (<2 x double >, <2 x double >) nounwind readnone
1728
1728
1729
+ define <2 x i64 > @test_mm_move_epi64 (<2 x i64 > %a0 ) nounwind {
1730
+ ; X32-LABEL: test_mm_move_epi64:
1731
+ ; X32: # BB#0:
1732
+ ; X32-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
1733
+ ; X32-NEXT: retl
1734
+ ;
1735
+ ; X64-LABEL: test_mm_move_epi64:
1736
+ ; X64: # BB#0:
1737
+ ; X64-NEXT: movq {{.*#+}} xmm0 = xmm0[0],zero
1738
+ ; X64-NEXT: retq
1739
+ %res = shufflevector <2 x i64 > %a0 , <2 x i64 > zeroinitializer , <2 x i32 > <i32 0 , i32 2 >
1740
+ ret <2 x i64 > %res
1741
+ }
1742
+
1743
+ define <2 x double > @test_mm_move_sd (<2 x double > %a0 , <2 x double > %a1 ) nounwind {
1744
+ ; X32-LABEL: test_mm_move_sd:
1745
+ ; X32: # BB#0:
1746
+ ; X32-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1747
+ ; X32-NEXT: retl
1748
+ ;
1749
+ ; X64-LABEL: test_mm_move_sd:
1750
+ ; X64: # BB#0:
1751
+ ; X64-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
1752
+ ; X64-NEXT: retq
1753
+ %ext0 = extractelement <2 x double > %a1 , i32 0
1754
+ %res0 = insertelement <2 x double > undef , double %ext0 , i32 0
1755
+ %ext1 = extractelement <2 x double > %a0 , i32 1
1756
+ %res1 = insertelement <2 x double > %res0 , double %ext1 , i32 1
1757
+ ret <2 x double > %res1
1758
+ }
1759
+
1729
1760
define i32 @test_mm_movemask_epi8 (<2 x i64 > %a0 ) nounwind {
1730
1761
; X32-LABEL: test_mm_movemask_epi8:
1731
1762
; X32: # BB#0:
0 commit comments