@@ -203,46 +203,39 @@ define i32 @PR43159(ptr %a0) {
203
203
; SSE-LABEL: PR43159:
204
204
; SSE: # %bb.0: # %entry
205
205
; SSE-NEXT: movdqa (%rdi), %xmm0
206
- ; SSE-NEXT: movdqa %xmm0, %xmm1
207
- ; SSE-NEXT: psrld $1, %xmm1
208
- ; SSE-NEXT: pblendw {{.*#+}} xmm1 = xmm0[0,1,2,3],xmm1[4,5],xmm0[6,7]
206
+ ; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
209
207
; SSE-NEXT: pmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
210
- ; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
211
- ; SSE-NEXT: pshufd {{.*#+}} xmm2 = xmm0[1,1,3,3]
212
- ; SSE-NEXT: pmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
213
- ; SSE-NEXT: pblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3],xmm1[4,5],xmm2[6,7]
214
- ; SSE-NEXT: psubd %xmm2, %xmm0
208
+ ; SSE-NEXT: movdqa %xmm0, %xmm2
209
+ ; SSE-NEXT: psrld $1, %xmm2
210
+ ; SSE-NEXT: pblendw {{.*#+}} xmm2 = xmm0[0,1,2,3],xmm2[4,5],xmm0[6,7]
211
+ ; SSE-NEXT: psubd %xmm1, %xmm0
215
212
; SSE-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
216
213
; SSE-NEXT: pmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
217
- ; SSE-NEXT: pxor %xmm2, %xmm2
218
- ; SSE-NEXT: pblendw {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,3],xmm2[4,5],xmm0[6,7]
219
- ; SSE-NEXT: paddd %xmm1, %xmm2
220
- ; SSE-NEXT: movdqa %xmm2, %xmm0
214
+ ; SSE-NEXT: paddd %xmm1, %xmm0
221
215
; SSE-NEXT: psrld $7, %xmm0
222
- ; SSE-NEXT: psrld $6, %xmm2
223
- ; SSE-NEXT: movd %xmm2, %edi
216
+ ; SSE-NEXT: pmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
217
+ ; SSE-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]
218
+ ; SSE-NEXT: psrld $6, %xmm1
219
+ ; SSE-NEXT: movd %xmm1, %edi
224
220
; SSE-NEXT: pextrd $1, %xmm0, %esi
225
- ; SSE-NEXT: pextrd $2, %xmm2 , %edx
221
+ ; SSE-NEXT: pextrd $2, %xmm1 , %edx
226
222
; SSE-NEXT: pextrd $3, %xmm0, %ecx
227
223
; SSE-NEXT: jmp foo # TAILCALL
228
224
;
229
225
; AVX1-LABEL: PR43159:
230
226
; AVX1: # %bb.0: # %entry
231
227
; AVX1-NEXT: vmovdqa (%rdi), %xmm0
232
- ; AVX1-NEXT: vpsrld $1, %xmm0, %xmm1
233
- ; AVX1-NEXT: vpblendw {{.*#+}} xmm1 = xmm0[0,1,2,3],xmm1[4,5],xmm0[6,7]
228
+ ; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
234
229
; AVX1-NEXT: vpmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
235
- ; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
236
- ; AVX1-NEXT: vpshufd {{.*#+}} xmm2 = xmm0 [1,1,3,3]
230
+ ; AVX1-NEXT: vpsubd % xmm1, %xmm0, %xmm2
231
+ ; AVX1-NEXT: vpshufd {{.*#+}} xmm2 = xmm2 [1,1,3,3]
237
232
; AVX1-NEXT: vpmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
238
- ; AVX1-NEXT: vpblendw {{.*#+}} xmm1 = xmm1[0,1],xmm2[2,3],xmm1[4,5],xmm2[6,7]
239
- ; AVX1-NEXT: vpsubd %xmm2, %xmm0, %xmm0
240
- ; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
233
+ ; AVX1-NEXT: vpaddd %xmm1, %xmm2, %xmm1
234
+ ; AVX1-NEXT: vpsrld $7, %xmm1, %xmm1
235
+ ; AVX1-NEXT: vpsrld $1, %xmm0, %xmm2
236
+ ; AVX1-NEXT: vpblendw {{.*#+}} xmm0 = xmm0[0,1,2,3],xmm2[4,5],xmm0[6,7]
241
237
; AVX1-NEXT: vpmuludq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
242
- ; AVX1-NEXT: vpxor %xmm2, %xmm2, %xmm2
243
- ; AVX1-NEXT: vpblendw {{.*#+}} xmm0 = xmm2[0,1],xmm0[2,3],xmm2[4,5],xmm0[6,7]
244
- ; AVX1-NEXT: vpaddd %xmm1, %xmm0, %xmm0
245
- ; AVX1-NEXT: vpsrld $7, %xmm0, %xmm1
238
+ ; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
246
239
; AVX1-NEXT: vpsrld $6, %xmm0, %xmm0
247
240
; AVX1-NEXT: vmovd %xmm0, %edi
248
241
; AVX1-NEXT: vpextrd $1, %xmm1, %esi
0 commit comments