@@ -231,22 +231,22 @@ define <8 x i32> @vec256_i32_signed_mem_reg(ptr %a1_addr, <8 x i32> %a2) nounwin
231
231
define <8 x i32 > @vec256_i32_signed_reg_mem (<8 x i32 > %a1 , ptr %a2_addr ) nounwind {
232
232
; AVX1-LABEL: vec256_i32_signed_reg_mem:
233
233
; AVX1: # %bb.0:
234
- ; AVX1-NEXT: vmovdqa (%rdi), %xmm1
235
- ; AVX1-NEXT: vmovdqa 16(%rdi), %xmm2
236
- ; AVX1-NEXT: vpminsd %xmm1, %xmm0, %xmm3
237
- ; AVX1-NEXT: vpmaxsd %xmm1, %xmm0, %xmm1
238
- ; AVX1-NEXT: vpsubd %xmm3, %xmm1, %xmm1
234
+ ; AVX1-NEXT: vmovdqa (%rdi), %ymm1
235
+ ; AVX1-NEXT: vpminsd %xmm1, %xmm0, %xmm2
236
+ ; AVX1-NEXT: vpmaxsd %xmm1, %xmm0, %xmm3
237
+ ; AVX1-NEXT: vpsubd %xmm2, %xmm3, %xmm2
239
238
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
240
- ; AVX1-NEXT: vpminsd %xmm2 , %xmm3 , %xmm4
241
- ; AVX1-NEXT: vpmaxsd %xmm2 , %xmm3, %xmm2
242
- ; AVX1-NEXT: vpsubd %xmm4 , %xmm2 , %xmm2
243
- ; AVX1-NEXT: vpsrld $1 , %xmm2 , %xmm2
239
+ ; AVX1-NEXT: vextractf128 $1 , %ymm1 , %xmm1
240
+ ; AVX1-NEXT: vpminsd %xmm1 , %xmm3, %xmm4
241
+ ; AVX1-NEXT: vpmaxsd %xmm1 , %xmm3 , %xmm1
242
+ ; AVX1-NEXT: vpsubd %xmm4 , %xmm1 , %xmm1
244
243
; AVX1-NEXT: vpsrld $1, %xmm1, %xmm1
245
- ; AVX1-NEXT: vpmulld %xmm1 , %xmm1 , %xmm1
244
+ ; AVX1-NEXT: vpsrld $1 , %xmm2 , %xmm2
246
245
; AVX1-NEXT: vpmulld %xmm2, %xmm2, %xmm2
247
- ; AVX1-NEXT: vpaddd %xmm3, %xmm2, %xmm2
248
- ; AVX1-NEXT: vpaddd %xmm0, %xmm1, %xmm0
249
- ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
246
+ ; AVX1-NEXT: vpmulld %xmm1, %xmm1, %xmm1
247
+ ; AVX1-NEXT: vpaddd %xmm3, %xmm1, %xmm1
248
+ ; AVX1-NEXT: vpaddd %xmm0, %xmm2, %xmm0
249
+ ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
250
250
; AVX1-NEXT: retq
251
251
;
252
252
; AVX2-LABEL: vec256_i32_signed_reg_mem:
@@ -262,18 +262,18 @@ define <8 x i32> @vec256_i32_signed_reg_mem(<8 x i32> %a1, ptr %a2_addr) nounwin
262
262
;
263
263
; XOP-LABEL: vec256_i32_signed_reg_mem:
264
264
; XOP: # %bb.0:
265
- ; XOP-NEXT: vmovdqa (%rdi), %xmm1
266
- ; XOP-NEXT: vmovdqa 16(%rdi) , %xmm2
267
- ; XOP-NEXT: vextractf128 $1, %ymm0 , %xmm3
268
- ; XOP-NEXT: vpminsd %xmm2 , %xmm3 , %xmm4
269
- ; XOP-NEXT: vpmaxsd %xmm2 , %xmm3 , %xmm2
270
- ; XOP-NEXT: vpsubd %xmm4, %xmm2 , %xmm2
265
+ ; XOP-NEXT: vmovdqa (%rdi), %ymm1
266
+ ; XOP-NEXT: vextractf128 $1, %ymm0 , %xmm2
267
+ ; XOP-NEXT: vextractf128 $1, %ymm1 , %xmm3
268
+ ; XOP-NEXT: vpminsd %xmm3 , %xmm2 , %xmm4
269
+ ; XOP-NEXT: vpmaxsd %xmm3 , %xmm2 , %xmm3
270
+ ; XOP-NEXT: vpsubd %xmm4, %xmm3 , %xmm3
271
271
; XOP-NEXT: vpminsd %xmm1, %xmm0, %xmm4
272
272
; XOP-NEXT: vpmaxsd %xmm1, %xmm0, %xmm1
273
273
; XOP-NEXT: vpsubd %xmm4, %xmm1, %xmm1
274
274
; XOP-NEXT: vpsrld $1, %xmm1, %xmm1
275
- ; XOP-NEXT: vpsrld $1, %xmm2 , %xmm2
276
- ; XOP-NEXT: vpmacsdd %xmm3 , %xmm2 , %xmm2 , %xmm2
275
+ ; XOP-NEXT: vpsrld $1, %xmm3 , %xmm3
276
+ ; XOP-NEXT: vpmacsdd %xmm2 , %xmm3 , %xmm3 , %xmm2
277
277
; XOP-NEXT: vpmacsdd %xmm0, %xmm1, %xmm1, %xmm0
278
278
; XOP-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
279
279
; XOP-NEXT: retq
@@ -303,23 +303,23 @@ define <8 x i32> @vec256_i32_signed_reg_mem(<8 x i32> %a1, ptr %a2_addr) nounwin
303
303
define <8 x i32 > @vec256_i32_signed_mem_mem (ptr %a1_addr , ptr %a2_addr ) nounwind {
304
304
; AVX1-LABEL: vec256_i32_signed_mem_mem:
305
305
; AVX1: # %bb.0:
306
- ; AVX1-NEXT: vmovdqa (%rsi), %xmm0
307
- ; AVX1-NEXT: vmovdqa 16(%rsi), %xmm1
308
- ; AVX1-NEXT: vmovdqa (%rdi), %xmm2
309
- ; AVX1-NEXT: vmovdqa 16(%rdi), %xmm3
306
+ ; AVX1-NEXT: vmovdqa (%rsi), %ymm0
307
+ ; AVX1-NEXT: vmovdqa (%rdi), %xmm1
308
+ ; AVX1-NEXT: vmovdqa 16(%rdi), %xmm2
309
+ ; AVX1-NEXT: vpminsd %xmm0, %xmm1, %xmm3
310
+ ; AVX1-NEXT: vpmaxsd %xmm0, %xmm1, %xmm4
311
+ ; AVX1-NEXT: vpsubd %xmm3, %xmm4, %xmm3
312
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
310
313
; AVX1-NEXT: vpminsd %xmm0, %xmm2, %xmm4
311
314
; AVX1-NEXT: vpmaxsd %xmm0, %xmm2, %xmm0
312
315
; AVX1-NEXT: vpsubd %xmm4, %xmm0, %xmm0
313
- ; AVX1-NEXT: vpminsd %xmm1, %xmm3, %xmm4
314
- ; AVX1-NEXT: vpmaxsd %xmm1, %xmm3, %xmm1
315
- ; AVX1-NEXT: vpsubd %xmm4, %xmm1, %xmm1
316
- ; AVX1-NEXT: vpsrld $1, %xmm1, %xmm1
317
316
; AVX1-NEXT: vpsrld $1, %xmm0, %xmm0
317
+ ; AVX1-NEXT: vpsrld $1, %xmm3, %xmm3
318
+ ; AVX1-NEXT: vpmulld %xmm3, %xmm3, %xmm3
318
319
; AVX1-NEXT: vpmulld %xmm0, %xmm0, %xmm0
319
- ; AVX1-NEXT: vpmulld %xmm1, %xmm1, %xmm1
320
- ; AVX1-NEXT: vpaddd %xmm3, %xmm1, %xmm1
321
320
; AVX1-NEXT: vpaddd %xmm2, %xmm0, %xmm0
322
- ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
321
+ ; AVX1-NEXT: vpaddd %xmm1, %xmm3, %xmm1
322
+ ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
323
323
; AVX1-NEXT: retq
324
324
;
325
325
; AVX2-LABEL: vec256_i32_signed_mem_mem:
@@ -336,21 +336,21 @@ define <8 x i32> @vec256_i32_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwind
336
336
;
337
337
; XOP-LABEL: vec256_i32_signed_mem_mem:
338
338
; XOP: # %bb.0:
339
- ; XOP-NEXT: vmovdqa (%rsi), %xmm0
340
- ; XOP-NEXT: vmovdqa 16(%rsi ), %xmm1
341
- ; XOP-NEXT: vmovdqa (%rdi), %xmm2
342
- ; XOP-NEXT: vmovdqa 16(%rdi) , %xmm3
343
- ; XOP-NEXT: vpminsd %xmm1 , %xmm3 , %xmm4
344
- ; XOP-NEXT: vpmaxsd %xmm1 , %xmm3 , %xmm1
345
- ; XOP-NEXT: vpsubd %xmm4, %xmm1 , %xmm1
346
- ; XOP-NEXT: vpminsd %xmm0, %xmm2 , %xmm4
347
- ; XOP-NEXT: vpmaxsd %xmm0, %xmm2 , %xmm0
339
+ ; XOP-NEXT: vmovdqa (%rsi), %ymm0
340
+ ; XOP-NEXT: vmovdqa (%rdi ), %xmm1
341
+ ; XOP-NEXT: vmovdqa 16 (%rdi), %xmm2
342
+ ; XOP-NEXT: vextractf128 $1, %ymm0 , %xmm3
343
+ ; XOP-NEXT: vpminsd %xmm3 , %xmm2 , %xmm4
344
+ ; XOP-NEXT: vpmaxsd %xmm3 , %xmm2 , %xmm3
345
+ ; XOP-NEXT: vpsubd %xmm4, %xmm3 , %xmm3
346
+ ; XOP-NEXT: vpminsd %xmm0, %xmm1 , %xmm4
347
+ ; XOP-NEXT: vpmaxsd %xmm0, %xmm1 , %xmm0
348
348
; XOP-NEXT: vpsubd %xmm4, %xmm0, %xmm0
349
349
; XOP-NEXT: vpsrld $1, %xmm0, %xmm0
350
- ; XOP-NEXT: vpsrld $1, %xmm1 , %xmm1
351
- ; XOP-NEXT: vpmacsdd %xmm3 , %xmm1 , %xmm1 , %xmm1
352
- ; XOP-NEXT: vpmacsdd %xmm2 , %xmm0, %xmm0, %xmm0
353
- ; XOP-NEXT: vinsertf128 $1, %xmm1 , %ymm0, %ymm0
350
+ ; XOP-NEXT: vpsrld $1, %xmm3 , %xmm3
351
+ ; XOP-NEXT: vpmacsdd %xmm2 , %xmm3 , %xmm3 , %xmm2
352
+ ; XOP-NEXT: vpmacsdd %xmm1 , %xmm0, %xmm0, %xmm0
353
+ ; XOP-NEXT: vinsertf128 $1, %xmm2 , %ymm0, %ymm0
354
354
; XOP-NEXT: retq
355
355
;
356
356
; AVX512-LABEL: vec256_i32_signed_mem_mem:
0 commit comments