@@ -2105,18 +2105,16 @@ define <4 x i64> @PR52719(<4 x i64> %a0, i32 %a1) {
2105
2105
; AVX1-LABEL: PR52719:
2106
2106
; AVX1: # %bb.0:
2107
2107
; AVX1-NEXT: vmovd %edi, %xmm1
2108
- ; AVX1-NEXT: vpmovzxdq {{.*#+}} xmm2 = xmm1[0],zero,xmm1[1],zero
2109
- ; AVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
2110
- ; AVX1-NEXT: vpsrlq %xmm1, %xmm3, %xmm4
2111
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5
2112
- ; AVX1-NEXT: vpsrlq %xmm1, %xmm5, %xmm1
2113
- ; AVX1-NEXT: vpxor %xmm4, %xmm1, %xmm1
2114
- ; AVX1-NEXT: vpsubq %xmm4, %xmm1, %xmm1
2115
- ; AVX1-NEXT: vpsrlq %xmm2, %xmm3, %xmm3
2116
- ; AVX1-NEXT: vpsrlq %xmm2, %xmm0, %xmm0
2117
- ; AVX1-NEXT: vpxor %xmm3, %xmm0, %xmm0
2118
- ; AVX1-NEXT: vpsubq %xmm3, %xmm0, %xmm0
2119
- ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
2108
+ ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
2109
+ ; AVX1-NEXT: vpsrlq %xmm1, %xmm2, %xmm2
2110
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
2111
+ ; AVX1-NEXT: vpsrlq %xmm1, %xmm3, %xmm3
2112
+ ; AVX1-NEXT: vpxor %xmm2, %xmm3, %xmm3
2113
+ ; AVX1-NEXT: vpsubq %xmm2, %xmm3, %xmm3
2114
+ ; AVX1-NEXT: vpsrlq %xmm1, %xmm0, %xmm0
2115
+ ; AVX1-NEXT: vpxor %xmm2, %xmm0, %xmm0
2116
+ ; AVX1-NEXT: vpsubq %xmm2, %xmm0, %xmm0
2117
+ ; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm0
2120
2118
; AVX1-NEXT: retq
2121
2119
;
2122
2120
; AVX2-LABEL: PR52719:
@@ -2170,28 +2168,23 @@ define <4 x i64> @PR52719(<4 x i64> %a0, i32 %a1) {
2170
2168
;
2171
2169
; X86-AVX1-LABEL: PR52719:
2172
2170
; X86-AVX1: # %bb.0:
2173
- ; X86-AVX1-NEXT: vbroadcastss {{[0-9]+}}(%esp), %xmm1
2174
- ; X86-AVX1-NEXT: vxorps %xmm2, %xmm2, %xmm2
2175
- ; X86-AVX1-NEXT: vblendps {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
2176
- ; X86-AVX1-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero
2177
- ; X86-AVX1-NEXT: vmovddup {{.*#+}} xmm3 = [9223372036854775808,9223372036854775808]
2178
- ; X86-AVX1-NEXT: # xmm3 = mem[0,0]
2179
- ; X86-AVX1-NEXT: vpsrlq %xmm2, %xmm3, %xmm4
2180
- ; X86-AVX1-NEXT: vextractf128 $1, %ymm0, %xmm5
2181
- ; X86-AVX1-NEXT: vpsrlq %xmm2, %xmm5, %xmm2
2182
- ; X86-AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2
2183
- ; X86-AVX1-NEXT: vpsubq %xmm4, %xmm2, %xmm2
2171
+ ; X86-AVX1-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2172
+ ; X86-AVX1-NEXT: vmovddup {{.*#+}} xmm2 = [9223372036854775808,9223372036854775808]
2173
+ ; X86-AVX1-NEXT: # xmm2 = mem[0,0]
2174
+ ; X86-AVX1-NEXT: vpsrlq %xmm1, %xmm2, %xmm2
2175
+ ; X86-AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
2184
2176
; X86-AVX1-NEXT: vpsrlq %xmm1, %xmm3, %xmm3
2177
+ ; X86-AVX1-NEXT: vpxor %xmm2, %xmm3, %xmm3
2178
+ ; X86-AVX1-NEXT: vpsubq %xmm2, %xmm3, %xmm3
2185
2179
; X86-AVX1-NEXT: vpsrlq %xmm1, %xmm0, %xmm0
2186
- ; X86-AVX1-NEXT: vpxor %xmm3 , %xmm0, %xmm0
2187
- ; X86-AVX1-NEXT: vpsubq %xmm3 , %xmm0, %xmm0
2188
- ; X86-AVX1-NEXT: vinsertf128 $1, %xmm2 , %ymm0, %ymm0
2180
+ ; X86-AVX1-NEXT: vpxor %xmm2 , %xmm0, %xmm0
2181
+ ; X86-AVX1-NEXT: vpsubq %xmm2 , %xmm0, %xmm0
2182
+ ; X86-AVX1-NEXT: vinsertf128 $1, %xmm3 , %ymm0, %ymm0
2189
2183
; X86-AVX1-NEXT: retl
2190
2184
;
2191
2185
; X86-AVX2-LABEL: PR52719:
2192
2186
; X86-AVX2: # %bb.0:
2193
- ; X86-AVX2-NEXT: vpbroadcastd {{[0-9]+}}(%esp), %xmm1
2194
- ; X86-AVX2-NEXT: vpmovzxdq {{.*#+}} xmm1 = xmm1[0],zero,xmm1[1],zero
2187
+ ; X86-AVX2-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
2195
2188
; X86-AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [0,2147483648,0,2147483648,0,2147483648,0,2147483648]
2196
2189
; X86-AVX2-NEXT: vpsrlq %xmm1, %ymm2, %ymm2
2197
2190
; X86-AVX2-NEXT: vpsrlq %xmm1, %ymm0, %ymm0
0 commit comments