@@ -231,22 +231,22 @@ define <8 x i32> @vec256_i32_signed_mem_reg(ptr %a1_addr, <8 x i32> %a2) nounwin
231231define <8 x i32 > @vec256_i32_signed_reg_mem (<8 x i32 > %a1 , ptr %a2_addr ) nounwind {
232232; AVX1-LABEL: vec256_i32_signed_reg_mem:
233233; 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
239238; 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
244243; AVX1-NEXT: vpsrld $1, %xmm1, %xmm1
245- ; AVX1-NEXT: vpmulld %xmm1 , %xmm1 , %xmm1
244+ ; AVX1-NEXT: vpsrld $1 , %xmm2 , %xmm2
246245; 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
250250; AVX1-NEXT: retq
251251;
252252; 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
262262;
263263; XOP-LABEL: vec256_i32_signed_reg_mem:
264264; 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
271271; XOP-NEXT: vpminsd %xmm1, %xmm0, %xmm4
272272; XOP-NEXT: vpmaxsd %xmm1, %xmm0, %xmm1
273273; XOP-NEXT: vpsubd %xmm4, %xmm1, %xmm1
274274; 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
277277; XOP-NEXT: vpmacsdd %xmm0, %xmm1, %xmm1, %xmm0
278278; XOP-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
279279; XOP-NEXT: retq
@@ -303,23 +303,23 @@ define <8 x i32> @vec256_i32_signed_reg_mem(<8 x i32> %a1, ptr %a2_addr) nounwin
303303define <8 x i32 > @vec256_i32_signed_mem_mem (ptr %a1_addr , ptr %a2_addr ) nounwind {
304304; AVX1-LABEL: vec256_i32_signed_mem_mem:
305305; 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
310313; AVX1-NEXT: vpminsd %xmm0, %xmm2, %xmm4
311314; AVX1-NEXT: vpmaxsd %xmm0, %xmm2, %xmm0
312315; 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
317316; AVX1-NEXT: vpsrld $1, %xmm0, %xmm0
317+ ; AVX1-NEXT: vpsrld $1, %xmm3, %xmm3
318+ ; AVX1-NEXT: vpmulld %xmm3, %xmm3, %xmm3
318319; AVX1-NEXT: vpmulld %xmm0, %xmm0, %xmm0
319- ; AVX1-NEXT: vpmulld %xmm1, %xmm1, %xmm1
320- ; AVX1-NEXT: vpaddd %xmm3, %xmm1, %xmm1
321320; 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
323323; AVX1-NEXT: retq
324324;
325325; 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
336336;
337337; XOP-LABEL: vec256_i32_signed_mem_mem:
338338; 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
348348; XOP-NEXT: vpsubd %xmm4, %xmm0, %xmm0
349349; 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
354354; XOP-NEXT: retq
355355;
356356; AVX512-LABEL: vec256_i32_signed_mem_mem:
0 commit comments