diff --git a/llvm/test/CodeGen/X86/vec_minmax_sint.ll b/llvm/test/CodeGen/X86/vec_minmax_sint.ll index dc32356e285d..618c6a7f6822 100644 --- a/llvm/test/CodeGen/X86/vec_minmax_sint.ll +++ b/llvm/test/CodeGen/X86/vec_minmax_sint.ll @@ -1797,7 +1797,7 @@ define <4 x i32> @max_gt_v4i32c() { ; SSE2-LABEL: max_gt_v4i32c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [4294967289,4294967295,1,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,4294967289,7,1] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967295,4294967289,7,1] ; SSE2-NEXT: movdqa %xmm1, %xmm0 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm0 ; SSE2-NEXT: pand %xmm0, %xmm1 @@ -1823,7 +1823,7 @@ define <4 x i32> @max_gt_v4i32c() { ; AVX-NEXT: vpmaxsd {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp sgt <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -1834,7 +1834,7 @@ define <8 x i32> @max_gt_v8i32c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967289,4294967291,4294967293,4294967295] ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,3,5,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,4294967293,4294967291,4294967289] +; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [4294967295,4294967293,4294967291,4294967289] ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [7,5,3,1] ; SSE2-NEXT: movdqa %xmm3, %xmm1 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm1 @@ -1885,7 +1885,7 @@ define <8 x i32> @max_gt_v8i32c() { ; AVX512-NEXT: vpmaxsd {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp sgt <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -1903,8 +1903,8 @@ define <8 x i16> @max_gt_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpmaxsw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp sgt <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -1939,8 +1939,8 @@ define <16 x i16> @max_gt_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpmaxsw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp sgt <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -1950,7 +1950,7 @@ define <16 x i8> @max_gt_v16i8c() { ; SSE2-LABEL: max_gt_v16i8c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [255,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] ; SSE2-NEXT: movdqa %xmm1, %xmm0 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm0 ; SSE2-NEXT: pand %xmm0, %xmm1 @@ -1975,8 +1975,8 @@ define <16 x i8> @max_gt_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpmaxsb {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp sgt <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 @@ -2201,7 +2201,7 @@ define <4 x i32> @max_ge_v4i32c() { ; SSE2-LABEL: max_ge_v4i32c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [4294967289,4294967295,1,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,4294967289,7,1] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967295,4294967289,7,1] ; SSE2-NEXT: movdqa %xmm2, %xmm3 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm3 ; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 @@ -2229,7 +2229,7 @@ define <4 x i32> @max_ge_v4i32c() { ; AVX-NEXT: vpmaxsd {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp sge <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -2240,7 +2240,7 @@ define <8 x i32> @max_ge_v8i32c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967289,4294967291,4294967293,4294967295] ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,3,5,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,4294967293,4294967291,4294967289] +; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [4294967295,4294967293,4294967291,4294967289] ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [7,5,3,1] ; SSE2-NEXT: movdqa %xmm5, %xmm6 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm6 @@ -2295,7 +2295,7 @@ define <8 x i32> @max_ge_v8i32c() { ; AVX512-NEXT: vpmaxsd {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp sge <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -2313,8 +2313,8 @@ define <8 x i16> @max_ge_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpmaxsw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp sge <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -2349,8 +2349,8 @@ define <16 x i16> @max_ge_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpmaxsw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp sge <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -2360,7 +2360,7 @@ define <16 x i8> @max_ge_v16i8c() { ; SSE2-LABEL: max_ge_v16i8c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [255,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] ; SSE2-NEXT: movdqa %xmm2, %xmm3 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm3 ; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 @@ -2387,8 +2387,8 @@ define <16 x i8> @max_ge_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpmaxsb {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp sge <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 @@ -2591,7 +2591,7 @@ define <4 x i32> @min_lt_v4i32c() { ; SSE2-LABEL: min_lt_v4i32c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [4294967289,4294967295,1,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,4294967289,7,1] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967295,4294967289,7,1] ; SSE2-NEXT: movdqa %xmm2, %xmm0 ; SSE2-NEXT: pcmpgtd %xmm1, %xmm0 ; SSE2-NEXT: pand %xmm0, %xmm1 @@ -2617,7 +2617,7 @@ define <4 x i32> @min_lt_v4i32c() { ; AVX-NEXT: vpminsd {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp slt <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -2628,7 +2628,7 @@ define <8 x i32> @min_lt_v8i32c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967289,4294967291,4294967293,4294967295] ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,3,5,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,4294967293,4294967291,4294967289] +; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [4294967295,4294967293,4294967291,4294967289] ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [7,5,3,1] ; SSE2-NEXT: movdqa %xmm5, %xmm1 ; SSE2-NEXT: pcmpgtd %xmm3, %xmm1 @@ -2679,7 +2679,7 @@ define <8 x i32> @min_lt_v8i32c() { ; AVX512-NEXT: vpminsd {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp slt <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -2697,8 +2697,8 @@ define <8 x i16> @min_lt_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpminsw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp slt <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -2733,8 +2733,8 @@ define <16 x i16> @min_lt_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpminsw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp slt <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -2744,7 +2744,7 @@ define <16 x i8> @min_lt_v16i8c() { ; SSE2-LABEL: min_lt_v16i8c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [255,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] ; SSE2-NEXT: movdqa %xmm2, %xmm0 ; SSE2-NEXT: pcmpgtb %xmm1, %xmm0 ; SSE2-NEXT: pand %xmm0, %xmm1 @@ -2769,8 +2769,8 @@ define <16 x i8> @min_lt_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpminsb {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp slt <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 @@ -2995,7 +2995,7 @@ define <4 x i32> @min_le_v4i32c() { ; SSE2-LABEL: min_le_v4i32c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [4294967289,4294967295,1,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,4294967289,7,1] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967295,4294967289,7,1] ; SSE2-NEXT: movdqa %xmm1, %xmm3 ; SSE2-NEXT: pcmpgtd %xmm2, %xmm3 ; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 @@ -3023,7 +3023,7 @@ define <4 x i32> @min_le_v4i32c() { ; AVX-NEXT: vpminsd {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp sle <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -3034,7 +3034,7 @@ define <8 x i32> @min_le_v8i32c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [4294967289,4294967291,4294967293,4294967295] ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,3,5,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,4294967293,4294967291,4294967289] +; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [4294967295,4294967293,4294967291,4294967289] ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [7,5,3,1] ; SSE2-NEXT: movdqa %xmm3, %xmm6 ; SSE2-NEXT: pcmpgtd %xmm5, %xmm6 @@ -3089,7 +3089,7 @@ define <8 x i32> @min_le_v8i32c() { ; AVX512-NEXT: vpminsd {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp sle <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -3107,8 +3107,8 @@ define <8 x i16> @min_le_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpminsw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp sle <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -3143,8 +3143,8 @@ define <16 x i16> @min_le_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpminsw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp sle <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -3154,7 +3154,7 @@ define <16 x i8> @min_le_v16i8c() { ; SSE2-LABEL: min_le_v16i8c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [255,254,253,252,251,250,249,0,7,6,5,4,3,2,1,0] ; SSE2-NEXT: movdqa %xmm1, %xmm3 ; SSE2-NEXT: pcmpgtb %xmm2, %xmm3 ; SSE2-NEXT: pcmpeqd %xmm0, %xmm0 @@ -3181,8 +3181,8 @@ define <16 x i8> @min_le_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpminsb {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp sle <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 diff --git a/llvm/test/CodeGen/X86/vec_minmax_uint.ll b/llvm/test/CodeGen/X86/vec_minmax_uint.ll index e689f4af1768..25b672c7068e 100644 --- a/llvm/test/CodeGen/X86/vec_minmax_uint.ll +++ b/llvm/test/CodeGen/X86/vec_minmax_uint.ll @@ -1958,7 +1958,7 @@ define <4 x i32> @max_gt_v4i32c() { ; AVX-NEXT: vpmaxud {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp ugt <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -2018,7 +2018,7 @@ define <8 x i32> @max_gt_v8i32c() { ; AVX512-NEXT: vpmaxud {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp ugt <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -2052,8 +2052,8 @@ define <8 x i16> @max_gt_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpmaxuw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp ugt <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -2112,8 +2112,8 @@ define <16 x i16> @max_gt_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpmaxuw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp ugt <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -2131,8 +2131,8 @@ define <16 x i8> @max_gt_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpmaxub {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp ugt <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 @@ -2353,7 +2353,7 @@ define <4 x i64> @max_ge_v4i64c() { define <4 x i32> @max_ge_v4i32c() { ; SSE2-LABEL: max_ge_v4i32c: ; SSE2: # BB#0: -; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483649,2147483641,2147483655,2147483649] +; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483647,2147483641,2147483655,2147483649] ; SSE2-NEXT: pcmpgtd {{.*}}(%rip), %xmm0 ; SSE2-NEXT: pcmpeqd %xmm1, %xmm1 ; SSE2-NEXT: pxor %xmm0, %xmm1 @@ -2380,7 +2380,7 @@ define <4 x i32> @max_ge_v4i32c() { ; AVX-NEXT: vpmaxud {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp uge <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -2394,7 +2394,7 @@ define <8 x i32> @max_ge_v8i32c() { ; SSE2-NEXT: pcmpeqd %xmm2, %xmm2 ; SSE2-NEXT: movdqa %xmm1, %xmm3 ; SSE2-NEXT: pxor %xmm2, %xmm3 -; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483649,2147483645,2147483643,2147483641] +; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483647,2147483645,2147483643,2147483641] ; SSE2-NEXT: pcmpgtd {{.*}}(%rip), %xmm0 ; SSE2-NEXT: pxor %xmm0, %xmm2 ; SSE2-NEXT: pandn {{.*}}(%rip), %xmm2 @@ -2442,7 +2442,7 @@ define <8 x i32> @max_ge_v8i32c() { ; AVX512-NEXT: vpmaxud {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp uge <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -2452,7 +2452,7 @@ define <8 x i16> @max_ge_v8i16c() { ; SSE2-LABEL: max_ge_v8i16c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [65529,65531,65533,65535,1,3,5,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,65533,65531,65529,7,5,3,1] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [65535,65533,65531,65529,7,5,3,1] ; SSE2-NEXT: movdqa %xmm2, %xmm3 ; SSE2-NEXT: psubusw %xmm1, %xmm3 ; SSE2-NEXT: pxor %xmm0, %xmm0 @@ -2479,8 +2479,8 @@ define <8 x i16> @max_ge_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpmaxuw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp uge <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -2491,7 +2491,7 @@ define <16 x i16> @max_ge_v16i16c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [65529,65530,65531,65532,65533,65534,65535,0] ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,2,3,4,5,6,7,8] -; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,65534,65533,65532,65531,65530,65529,0] +; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [65535,65534,65533,65532,65531,65530,65529,0] ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [7,6,5,4,3,2,1,0] ; SSE2-NEXT: movdqa %xmm5, %xmm1 ; SSE2-NEXT: psubusw %xmm3, %xmm1 @@ -2544,8 +2544,8 @@ define <16 x i16> @max_ge_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpmaxuw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp uge <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -2563,8 +2563,8 @@ define <16 x i8> @max_ge_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpmaxub {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp uge <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 @@ -2763,7 +2763,7 @@ define <4 x i64> @min_lt_v4i64c() { define <4 x i32> @min_lt_v4i32c() { ; SSE2-LABEL: min_lt_v4i32c: ; SSE2: # BB#0: -; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483649,2147483641,2147483655,2147483649] +; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483647,2147483641,2147483655,2147483649] ; SSE2-NEXT: pcmpgtd {{.*}}(%rip), %xmm0 ; SSE2-NEXT: movdqa %xmm0, %xmm1 ; SSE2-NEXT: pandn {{.*}}(%rip), %xmm1 @@ -2789,7 +2789,7 @@ define <4 x i32> @min_lt_v4i32c() { ; AVX-NEXT: vpminud {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp ult <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -2800,7 +2800,7 @@ define <8 x i32> @min_lt_v8i32c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [2147483655,2147483653,2147483651,2147483649] ; SSE2-NEXT: pcmpgtd {{.*}}(%rip), %xmm1 -; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483649,2147483645,2147483643,2147483641] +; SSE2-NEXT: movdqa {{.*#+}} xmm0 = [2147483647,2147483645,2147483643,2147483641] ; SSE2-NEXT: pcmpgtd {{.*}}(%rip), %xmm0 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: pandn {{.*}}(%rip), %xmm2 @@ -2849,7 +2849,7 @@ define <8 x i32> @min_lt_v8i32c() { ; AVX512-NEXT: vpminud {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp ult <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -2885,8 +2885,8 @@ define <8 x i16> @min_lt_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpminuw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 1, i32 0 %3 = icmp ult <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -2945,8 +2945,8 @@ define <16 x i16> @min_lt_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpminuw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 1, i32 0 %3 = icmp ult <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -2964,8 +2964,8 @@ define <16 x i8> @min_lt_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpminub {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 1, i32 0 %3 = icmp ult <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4 @@ -3213,7 +3213,7 @@ define <4 x i32> @min_le_v4i32c() { ; AVX-NEXT: vpminud {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq %1 = insertelement <4 x i32> , i32 -7, i32 0 - %2 = insertelement <4 x i32> , i32 1, i32 0 + %2 = insertelement <4 x i32> , i32 -1, i32 0 %3 = icmp ule <4 x i32> %1, %2 %4 = select <4 x i1> %3, <4 x i32> %1, <4 x i32> %2 ret <4 x i32> %4 @@ -3275,7 +3275,7 @@ define <8 x i32> @min_le_v8i32c() { ; AVX512-NEXT: vpminud {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq %1 = insertelement <8 x i32> , i32 -7, i32 0 - %2 = insertelement <8 x i32> , i32 1, i32 0 + %2 = insertelement <8 x i32> , i32 -1, i32 0 %3 = icmp ule <8 x i32> %1, %2 %4 = select <8 x i1> %3, <8 x i32> %1, <8 x i32> %2 ret <8 x i32> %4 @@ -3285,7 +3285,7 @@ define <8 x i16> @min_le_v8i16c() { ; SSE2-LABEL: min_le_v8i16c: ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [65529,65531,65533,65535,1,3,5,7] -; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [1,65533,65531,65529,7,5,3,1] +; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [65535,65533,65531,65529,7,5,3,1] ; SSE2-NEXT: movdqa %xmm1, %xmm3 ; SSE2-NEXT: psubusw %xmm2, %xmm3 ; SSE2-NEXT: pxor %xmm0, %xmm0 @@ -3312,8 +3312,8 @@ define <8 x i16> @min_le_v8i16c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [65529,65531,65533,65535,1,3,5,7] ; AVX-NEXT: vpminuw {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <8 x i16> , i16 -7, i16 0 - %2 = insertelement <8 x i16> , i16 1, i16 0 + %1 = insertelement <8 x i16> , i16 -7, i32 0 + %2 = insertelement <8 x i16> , i16 -1, i32 0 %3 = icmp ule <8 x i16> %1, %2 %4 = select <8 x i1> %3, <8 x i16> %1, <8 x i16> %2 ret <8 x i16> %4 @@ -3324,7 +3324,7 @@ define <16 x i16> @min_le_v16i16c() { ; SSE2: # BB#0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [65529,65530,65531,65532,65533,65534,65535,0] ; SSE2-NEXT: movdqa {{.*#+}} xmm3 = [1,2,3,4,5,6,7,8] -; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [1,65534,65533,65532,65531,65530,65529,0] +; SSE2-NEXT: movdqa {{.*#+}} xmm4 = [65535,65534,65533,65532,65531,65530,65529,0] ; SSE2-NEXT: movdqa {{.*#+}} xmm5 = [7,6,5,4,3,2,1,0] ; SSE2-NEXT: movdqa %xmm3, %xmm1 ; SSE2-NEXT: psubusw %xmm5, %xmm1 @@ -3377,8 +3377,8 @@ define <16 x i16> @min_le_v16i16c() { ; AVX512-NEXT: vmovdqa {{.*#+}} ymm0 = [65529,65530,65531,65532,65533,65534,65535,0,1,2,3,4,5,6,7,8] ; AVX512-NEXT: vpminuw {{.*}}(%rip), %ymm0, %ymm0 ; AVX512-NEXT: retq - %1 = insertelement <16 x i16> , i16 -7, i16 0 - %2 = insertelement <16 x i16> , i16 1, i16 0 + %1 = insertelement <16 x i16> , i16 -7, i32 0 + %2 = insertelement <16 x i16> , i16 -1, i32 0 %3 = icmp ule <16 x i16> %1, %2 %4 = select <16 x i1> %3, <16 x i16> %1, <16 x i16> %2 ret <16 x i16> %4 @@ -3396,8 +3396,8 @@ define <16 x i8> @min_le_v16i8c() { ; AVX-NEXT: vmovdqa {{.*#+}} xmm0 = [249,250,251,252,253,254,255,0,1,2,3,4,5,6,7,8] ; AVX-NEXT: vpminub {{.*}}(%rip), %xmm0, %xmm0 ; AVX-NEXT: retq - %1 = insertelement <16 x i8> , i8 -7, i8 0 - %2 = insertelement <16 x i8> , i8 1, i8 0 + %1 = insertelement <16 x i8> , i8 -7, i32 0 + %2 = insertelement <16 x i8> , i8 -1, i32 0 %3 = icmp ule <16 x i8> %1, %2 %4 = select <16 x i1> %3, <16 x i8> %1, <16 x i8> %2 ret <16 x i8> %4