@@ -1881,25 +1881,25 @@ define <4 x float> @uitofp_2i64_to_4f32(<2 x i64> %a) {
18811881;
18821882; SSE41-LABEL: uitofp_2i64_to_4f32:
18831883; SSE41: # %bb.0:
1884- ; SSE41-NEXT: movdqa %xmm0, % xmm1
1885- ; SSE41-NEXT: pxor %xmm0, %xmm0
1886- ; SSE41-NEXT: pcmpgtd %xmm1 , %xmm0
1887- ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [1,1]
1888- ; SSE41-NEXT: pand %xmm1 , %xmm2
1889- ; SSE41-NEXT: movdqa %xmm1 , %xmm3
1890- ; SSE41-NEXT: psrlq $1, %xmm3
1891- ; SSE41-NEXT: por %xmm2 , %xmm3
1892- ; SSE41-NEXT: blendvpd %xmm0, %xmm3 , %xmm1
1893- ; SSE41-NEXT: pextrq $1, %xmm1 , %rax
1894- ; SSE41-NEXT: xorps %xmm2 , %xmm2
1895- ; SSE41-NEXT: cvtsi2ss %rax, %xmm2
1896- ; SSE41-NEXT: movq %xmm1 , %rax
1884+ ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [1,1]
1885+ ; SSE41-NEXT: pand %xmm0, %xmm1
1886+ ; SSE41-NEXT: movdqa %xmm0 , %xmm2
1887+ ; SSE41-NEXT: pxor %xmm3, %xmm3
1888+ ; SSE41-NEXT: pcmpgtd %xmm0 , %xmm3
1889+ ; SSE41-NEXT: movdqa %xmm0 , %xmm4
1890+ ; SSE41-NEXT: psrlq $1, %xmm4
1891+ ; SSE41-NEXT: por %xmm1 , %xmm4
1892+ ; SSE41-NEXT: blendvpd %xmm0, %xmm4 , %xmm2
1893+ ; SSE41-NEXT: pextrq $1, %xmm2 , %rax
1894+ ; SSE41-NEXT: xorps %xmm0 , %xmm0
1895+ ; SSE41-NEXT: cvtsi2ss %rax, %xmm0
1896+ ; SSE41-NEXT: movq %xmm2 , %rax
18971897; SSE41-NEXT: xorps %xmm1, %xmm1
18981898; SSE41-NEXT: cvtsi2ss %rax, %xmm1
1899- ; SSE41-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],xmm2 [0],zero,zero
1899+ ; SSE41-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],xmm0 [0],zero,zero
19001900; SSE41-NEXT: movaps %xmm1, %xmm2
19011901; SSE41-NEXT: addps %xmm1, %xmm2
1902- ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0 [1,3,2,3]
1902+ ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm3 [1,3,2,3]
19031903; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm1
19041904; SSE41-NEXT: movaps %xmm1, %xmm0
19051905; SSE41-NEXT: retq
@@ -2000,25 +2000,25 @@ define <4 x float> @uitofp_2i64_to_2f32(<2 x i64> %a) {
20002000;
20012001; SSE41-LABEL: uitofp_2i64_to_2f32:
20022002; SSE41: # %bb.0:
2003- ; SSE41-NEXT: movdqa %xmm0, % xmm1
2004- ; SSE41-NEXT: pxor %xmm0, %xmm0
2005- ; SSE41-NEXT: pcmpgtd %xmm1 , %xmm0
2006- ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [1,1]
2007- ; SSE41-NEXT: pand %xmm1 , %xmm2
2008- ; SSE41-NEXT: movdqa %xmm1 , %xmm3
2009- ; SSE41-NEXT: psrlq $1, %xmm3
2010- ; SSE41-NEXT: por %xmm2 , %xmm3
2011- ; SSE41-NEXT: blendvpd %xmm0, %xmm3 , %xmm1
2012- ; SSE41-NEXT: pextrq $1, %xmm1 , %rax
2013- ; SSE41-NEXT: xorps %xmm2 , %xmm2
2014- ; SSE41-NEXT: cvtsi2ss %rax, %xmm2
2015- ; SSE41-NEXT: movq %xmm1 , %rax
2003+ ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [1,1]
2004+ ; SSE41-NEXT: pand %xmm0, %xmm1
2005+ ; SSE41-NEXT: movdqa %xmm0 , %xmm2
2006+ ; SSE41-NEXT: pxor %xmm3, %xmm3
2007+ ; SSE41-NEXT: pcmpgtd %xmm0 , %xmm3
2008+ ; SSE41-NEXT: movdqa %xmm0 , %xmm4
2009+ ; SSE41-NEXT: psrlq $1, %xmm4
2010+ ; SSE41-NEXT: por %xmm1 , %xmm4
2011+ ; SSE41-NEXT: blendvpd %xmm0, %xmm4 , %xmm2
2012+ ; SSE41-NEXT: pextrq $1, %xmm2 , %rax
2013+ ; SSE41-NEXT: xorps %xmm0 , %xmm0
2014+ ; SSE41-NEXT: cvtsi2ss %rax, %xmm0
2015+ ; SSE41-NEXT: movq %xmm2 , %rax
20162016; SSE41-NEXT: xorps %xmm1, %xmm1
20172017; SSE41-NEXT: cvtsi2ss %rax, %xmm1
2018- ; SSE41-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],xmm2 [0],zero,zero
2018+ ; SSE41-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],xmm0 [0],zero,zero
20192019; SSE41-NEXT: movaps %xmm1, %xmm2
20202020; SSE41-NEXT: addps %xmm1, %xmm2
2021- ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0 [1,3,2,3]
2021+ ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm3 [1,3,2,3]
20222022; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm1
20232023; SSE41-NEXT: movq {{.*#+}} xmm0 = xmm1[0],zero
20242024; SSE41-NEXT: retq
@@ -2118,27 +2118,24 @@ define <4 x float> @uitofp_4i64_to_4f32_undef(<2 x i64> %a) {
21182118;
21192119; SSE41-LABEL: uitofp_4i64_to_4f32_undef:
21202120; SSE41: # %bb.0:
2121- ; SSE41-NEXT: movdqa %xmm0, % xmm1
2122- ; SSE41-NEXT: pxor %xmm0, %xmm0
2123- ; SSE41-NEXT: pcmpgtd %xmm1 , %xmm0
2124- ; SSE41-NEXT: movdqa {{.*#+}} xmm2 = [1,1]
2125- ; SSE41-NEXT: pand %xmm1, %xmm2
2126- ; SSE41-NEXT: movdqa % xmm1, %xmm3
2127- ; SSE41-NEXT: psrlq $1 , %xmm3
2128- ; SSE41-NEXT: por %xmm2 , %xmm3
2129- ; SSE41-NEXT: blendvpd %xmm0 , %xmm3, %xmm1
2130- ; SSE41-NEXT: pextrq $1, %xmm1 , %rax
2121+ ; SSE41-NEXT: movdqa {{.*#+}} xmm1 = [1,1]
2122+ ; SSE41-NEXT: pand %xmm0, %xmm1
2123+ ; SSE41-NEXT: movdqa %xmm0 , %xmm2
2124+ ; SSE41-NEXT: psrlq $1, %xmm2
2125+ ; SSE41-NEXT: por %xmm1, %xmm2
2126+ ; SSE41-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,3,2,3]
2127+ ; SSE41-NEXT: blendvpd %xmm0 , %xmm2, %xmm0
2128+ ; SSE41-NEXT: pextrq $1, %xmm0 , %rax
2129+ ; SSE41-NEXT: cvtsi2ss %rax , %xmm3
2130+ ; SSE41-NEXT: movq %xmm0 , %rax
21312131; SSE41-NEXT: xorps %xmm2, %xmm2
21322132; SSE41-NEXT: cvtsi2ss %rax, %xmm2
2133- ; SSE41-NEXT: movq %xmm1, %rax
2134- ; SSE41-NEXT: xorps %xmm1, %xmm1
2135- ; SSE41-NEXT: cvtsi2ss %rax, %xmm1
2136- ; SSE41-NEXT: insertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],zero,zero
2137- ; SSE41-NEXT: movaps %xmm1, %xmm2
2138- ; SSE41-NEXT: addps %xmm1, %xmm2
2139- ; SSE41-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,3,2,3]
2140- ; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm1
2141- ; SSE41-NEXT: movaps %xmm1, %xmm0
2133+ ; SSE41-NEXT: insertps {{.*#+}} xmm2 = xmm2[0],xmm3[0],zero,zero
2134+ ; SSE41-NEXT: movaps %xmm2, %xmm3
2135+ ; SSE41-NEXT: addps %xmm2, %xmm3
2136+ ; SSE41-NEXT: movdqa %xmm1, %xmm0
2137+ ; SSE41-NEXT: blendvps %xmm0, %xmm3, %xmm2
2138+ ; SSE41-NEXT: movaps %xmm2, %xmm0
21422139; SSE41-NEXT: retq
21432140;
21442141; AVX1-LABEL: uitofp_4i64_to_4f32_undef:
0 commit comments