@@ -81,44 +81,36 @@ define <16 x i8> @abd_ext_v16i8(<16 x i8> %a, <16 x i8> %b) nounwind {
81
81
; SSE2-NEXT: psubq %xmm10, %xmm7
82
82
; SSE2-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm9[2],xmm1[3],xmm9[3]
83
83
; SSE2-NEXT: psubq %xmm1, %xmm8
84
- ; SSE2-NEXT: movdqa %xmm0, % xmm1
84
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
85
85
; SSE2-NEXT: psrad $31, %xmm1
86
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
87
86
; SSE2-NEXT: pxor %xmm1, %xmm0
88
87
; SSE2-NEXT: psubq %xmm1, %xmm0
89
- ; SSE2-NEXT: movdqa %xmm3, % xmm1
88
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm3[1,1,3,3]
90
89
; SSE2-NEXT: psrad $31, %xmm1
91
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
92
90
; SSE2-NEXT: pxor %xmm1, %xmm3
93
91
; SSE2-NEXT: psubq %xmm1, %xmm3
94
- ; SSE2-NEXT: movdqa %xmm4, % xmm1
92
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm4[1,1,3,3]
95
93
; SSE2-NEXT: psrad $31, %xmm1
96
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
97
94
; SSE2-NEXT: pxor %xmm1, %xmm4
98
95
; SSE2-NEXT: psubq %xmm1, %xmm4
99
- ; SSE2-NEXT: movdqa %xmm5, % xmm1
96
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm5[1,1,3,3]
100
97
; SSE2-NEXT: psrad $31, %xmm1
101
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
102
98
; SSE2-NEXT: pxor %xmm1, %xmm5
103
99
; SSE2-NEXT: psubq %xmm1, %xmm5
104
- ; SSE2-NEXT: movdqa %xmm2, % xmm1
100
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]
105
101
; SSE2-NEXT: psrad $31, %xmm1
106
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
107
102
; SSE2-NEXT: pxor %xmm1, %xmm2
108
103
; SSE2-NEXT: psubq %xmm1, %xmm2
109
- ; SSE2-NEXT: movdqa %xmm6, % xmm1
104
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm6[1,1,3,3]
110
105
; SSE2-NEXT: psrad $31, %xmm1
111
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
112
106
; SSE2-NEXT: pxor %xmm1, %xmm6
113
107
; SSE2-NEXT: psubq %xmm1, %xmm6
114
- ; SSE2-NEXT: movdqa %xmm7, % xmm1
108
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm7[1,1,3,3]
115
109
; SSE2-NEXT: psrad $31, %xmm1
116
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
117
110
; SSE2-NEXT: pxor %xmm1, %xmm7
118
111
; SSE2-NEXT: psubq %xmm1, %xmm7
119
- ; SSE2-NEXT: movdqa %xmm8, % xmm1
112
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm8[1,1,3,3]
120
113
; SSE2-NEXT: psrad $31, %xmm1
121
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
122
114
; SSE2-NEXT: pxor %xmm1, %xmm8
123
115
; SSE2-NEXT: psubq %xmm1, %xmm8
124
116
; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0]
@@ -233,44 +225,36 @@ define <16 x i8> @abd_ext_v16i8_undef(<16 x i8> %a, <16 x i8> %b) nounwind {
233
225
; SSE2-NEXT: psubq %xmm10, %xmm7
234
226
; SSE2-NEXT: punpckhdq {{.*#+}} xmm1 = xmm1[2],xmm9[2],xmm1[3],xmm9[3]
235
227
; SSE2-NEXT: psubq %xmm1, %xmm8
236
- ; SSE2-NEXT: movdqa %xmm0, % xmm1
228
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
237
229
; SSE2-NEXT: psrad $31, %xmm1
238
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
239
230
; SSE2-NEXT: pxor %xmm1, %xmm0
240
231
; SSE2-NEXT: psubq %xmm1, %xmm0
241
- ; SSE2-NEXT: movdqa %xmm3, % xmm1
232
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm3[1,1,3,3]
242
233
; SSE2-NEXT: psrad $31, %xmm1
243
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
244
234
; SSE2-NEXT: pxor %xmm1, %xmm3
245
235
; SSE2-NEXT: psubq %xmm1, %xmm3
246
- ; SSE2-NEXT: movdqa %xmm4, % xmm1
236
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm4[1,1,3,3]
247
237
; SSE2-NEXT: psrad $31, %xmm1
248
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
249
238
; SSE2-NEXT: pxor %xmm1, %xmm4
250
239
; SSE2-NEXT: psubq %xmm1, %xmm4
251
- ; SSE2-NEXT: movdqa %xmm5, % xmm1
240
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm5[1,1,3,3]
252
241
; SSE2-NEXT: psrad $31, %xmm1
253
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
254
242
; SSE2-NEXT: pxor %xmm1, %xmm5
255
243
; SSE2-NEXT: psubq %xmm1, %xmm5
256
- ; SSE2-NEXT: movdqa %xmm2, % xmm1
244
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]
257
245
; SSE2-NEXT: psrad $31, %xmm1
258
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
259
246
; SSE2-NEXT: pxor %xmm1, %xmm2
260
247
; SSE2-NEXT: psubq %xmm1, %xmm2
261
- ; SSE2-NEXT: movdqa %xmm6, % xmm1
248
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm6[1,1,3,3]
262
249
; SSE2-NEXT: psrad $31, %xmm1
263
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
264
250
; SSE2-NEXT: pxor %xmm1, %xmm6
265
251
; SSE2-NEXT: psubq %xmm1, %xmm6
266
- ; SSE2-NEXT: movdqa %xmm7, % xmm1
252
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm7[1,1,3,3]
267
253
; SSE2-NEXT: psrad $31, %xmm1
268
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
269
254
; SSE2-NEXT: pxor %xmm1, %xmm7
270
255
; SSE2-NEXT: psubq %xmm1, %xmm7
271
- ; SSE2-NEXT: movdqa %xmm8, % xmm1
256
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm8[1,1,3,3]
272
257
; SSE2-NEXT: psrad $31, %xmm1
273
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
274
258
; SSE2-NEXT: pxor %xmm1, %xmm8
275
259
; SSE2-NEXT: psubq %xmm1, %xmm8
276
260
; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0]
@@ -378,14 +362,12 @@ define <4 x i32> @abd_ext_v4i32(<4 x i32> %a, <4 x i32> %b) nounwind {
378
362
; SSE2-NEXT: pcmpgtd %xmm5, %xmm3
379
363
; SSE2-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
380
364
; SSE2-NEXT: psubq %xmm5, %xmm2
381
- ; SSE2-NEXT: movdqa %xmm0, % xmm1
365
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
382
366
; SSE2-NEXT: psrad $31, %xmm1
383
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
384
367
; SSE2-NEXT: pxor %xmm1, %xmm0
385
368
; SSE2-NEXT: psubq %xmm1, %xmm0
386
- ; SSE2-NEXT: movdqa %xmm2, % xmm1
369
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]
387
370
; SSE2-NEXT: psrad $31, %xmm1
388
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
389
371
; SSE2-NEXT: pxor %xmm1, %xmm2
390
372
; SSE2-NEXT: psubq %xmm1, %xmm2
391
373
; SSE2-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm2[0,2]
@@ -432,14 +414,12 @@ define <4 x i32> @abd_ext_v4i32_undef(<4 x i32> %a, <4 x i32> %b) nounwind {
432
414
; SSE2-NEXT: pcmpgtd %xmm5, %xmm3
433
415
; SSE2-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
434
416
; SSE2-NEXT: psubq %xmm5, %xmm2
435
- ; SSE2-NEXT: movdqa %xmm0, % xmm1
417
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
436
418
; SSE2-NEXT: psrad $31, %xmm1
437
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
438
419
; SSE2-NEXT: pxor %xmm1, %xmm0
439
420
; SSE2-NEXT: psubq %xmm1, %xmm0
440
- ; SSE2-NEXT: movdqa %xmm2, % xmm1
421
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm2[1,1,3,3]
441
422
; SSE2-NEXT: psrad $31, %xmm1
442
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
443
423
; SSE2-NEXT: pxor %xmm1, %xmm2
444
424
; SSE2-NEXT: psubq %xmm1, %xmm2
445
425
; SSE2-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm2[0,2]
@@ -1023,9 +1003,8 @@ define <2 x i64> @abd_subnsw_v2i64(<2 x i64> %a, <2 x i64> %b) nounwind {
1023
1003
; SSE2-LABEL: abd_subnsw_v2i64:
1024
1004
; SSE2: # %bb.0:
1025
1005
; SSE2-NEXT: psubq %xmm1, %xmm0
1026
- ; SSE2-NEXT: movdqa %xmm0, % xmm1
1006
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm0[1,1,3,3]
1027
1007
; SSE2-NEXT: psrad $31, %xmm1
1028
- ; SSE2-NEXT: pshufd {{.*#+}} xmm1 = xmm1[1,1,3,3]
1029
1008
; SSE2-NEXT: pxor %xmm1, %xmm0
1030
1009
; SSE2-NEXT: psubq %xmm1, %xmm0
1031
1010
; SSE2-NEXT: retq
0 commit comments