diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/vector-compare-simplify.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/vector-compare-simplify.ll | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/llvm/test/CodeGen/X86/vector-compare-simplify.ll b/llvm/test/CodeGen/X86/vector-compare-simplify.ll index e7f1d849b2f..4eea1ea18c6 100644 --- a/llvm/test/CodeGen/X86/vector-compare-simplify.ll +++ b/llvm/test/CodeGen/X86/vector-compare-simplify.ll @@ -113,9 +113,10 @@ define <4 x i32> @uge_min(<4 x i32> %x) { define <4 x i32> @ugt_min(<4 x i32> %x) { ; CHECK-LABEL: ugt_min: ; CHECK: # %bb.0: -; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [2147483648,2147483648,2147483648,2147483648] +; CHECK-NEXT: pxor %xmm1, %xmm1 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm0 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm1 ; CHECK-NEXT: pxor %xmm1, %xmm0 -; CHECK-NEXT: pcmpgtd %xmm1, %xmm0 ; CHECK-NEXT: retq %cmp = icmp ugt <4 x i32> %x, zeroinitializer %r = sext <4 x i1> %cmp to <4 x i32> @@ -159,10 +160,9 @@ define <4 x i32> @ule_max(<4 x i32> %x) { define <4 x i32> @ult_max(<4 x i32> %x) { ; CHECK-LABEL: ult_max: ; CHECK: # %bb.0: -; CHECK-NEXT: pxor {{.*}}(%rip), %xmm0 -; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [2147483647,2147483647,2147483647,2147483647] -; CHECK-NEXT: pcmpgtd %xmm0, %xmm1 -; CHECK-NEXT: movdqa %xmm1, %xmm0 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm1 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm0 +; CHECK-NEXT: pxor %xmm1, %xmm0 ; CHECK-NEXT: retq %cmp = icmp ult <4 x i32> %x, <i32 -1, i32 -1, i32 -1, i32 -1> %r = sext <4 x i1> %cmp to <4 x i32> @@ -187,9 +187,7 @@ define <4 x i32> @uge_max(<4 x i32> %x) { define <4 x i32> @slt_min_plus1(<4 x i32> %x) { ; CHECK-LABEL: slt_min_plus1: ; CHECK: # %bb.0: -; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [2147483649,2147483649,2147483649,2147483649] -; CHECK-NEXT: pcmpgtd %xmm0, %xmm1 -; CHECK-NEXT: movdqa %xmm1, %xmm0 +; CHECK-NEXT: pcmpeqd {{.*}}(%rip), %xmm0 ; CHECK-NEXT: retq %cmp = icmp slt <4 x i32> %x, <i32 -2147483647, i32 -2147483647, i32 -2147483647, i32 -2147483647> %r = sext <4 x i1> %cmp to <4 x i32> @@ -212,7 +210,7 @@ define <4 x i32> @sge_min_plus1(<4 x i32> %x) { define <4 x i32> @sgt_max_minus1(<4 x i32> %x) { ; CHECK-LABEL: sgt_max_minus1: ; CHECK: # %bb.0: -; CHECK-NEXT: pcmpgtd {{.*}}(%rip), %xmm0 +; CHECK-NEXT: pcmpeqd {{.*}}(%rip), %xmm0 ; CHECK-NEXT: retq %cmp = icmp sgt <4 x i32> %x, <i32 2147483646, i32 2147483646, i32 2147483646, i32 2147483646> %r = sext <4 x i1> %cmp to <4 x i32> @@ -234,10 +232,8 @@ define <4 x i32> @sle_max_minus1(<4 x i32> %x) { define <4 x i32> @ult_one(<4 x i32> %x) { ; CHECK-LABEL: ult_one: ; CHECK: # %bb.0: -; CHECK-NEXT: pxor {{.*}}(%rip), %xmm0 -; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [2147483649,2147483649,2147483649,2147483649] -; CHECK-NEXT: pcmpgtd %xmm0, %xmm1 -; CHECK-NEXT: movdqa %xmm1, %xmm0 +; CHECK-NEXT: pxor %xmm1, %xmm1 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm0 ; CHECK-NEXT: retq %cmp = icmp ult <4 x i32> %x, <i32 1, i32 1, i32 1, i32 1> %r = sext <4 x i1> %cmp to <4 x i32> @@ -261,8 +257,8 @@ define <4 x i32> @uge_one(<4 x i32> %x) { define <4 x i32> @ugt_max_minus1(<4 x i32> %x) { ; CHECK-LABEL: ugt_max_minus1: ; CHECK: # %bb.0: -; CHECK-NEXT: pxor {{.*}}(%rip), %xmm0 -; CHECK-NEXT: pcmpgtd {{.*}}(%rip), %xmm0 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm1 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm0 ; CHECK-NEXT: retq %cmp = icmp ugt <4 x i32> %x, <i32 -2, i32 -2, i32 -2, i32 -2> %r = sext <4 x i1> %cmp to <4 x i32> @@ -285,9 +281,9 @@ define <4 x i32> @ule_max_minus1(<4 x i32> %x) { define <4 x i32> @ugt_smax(<4 x i32> %x) { ; CHECK-LABEL: ugt_smax: ; CHECK: # %bb.0: -; CHECK-NEXT: pxor {{.*}}(%rip), %xmm0 -; CHECK-NEXT: pcmpeqd %xmm1, %xmm1 -; CHECK-NEXT: pcmpgtd %xmm1, %xmm0 +; CHECK-NEXT: pxor %xmm1, %xmm1 +; CHECK-NEXT: pcmpgtd %xmm0, %xmm1 +; CHECK-NEXT: movdqa %xmm1, %xmm0 ; CHECK-NEXT: retq %cmp = icmp ugt <4 x i32> %x, <i32 2147483647, i32 2147483647, i32 2147483647, i32 2147483647> %r = sext <4 x i1> %cmp to <4 x i32> @@ -310,10 +306,8 @@ define <4 x i32> @ule_smax(<4 x i32> %x) { define <4 x i32> @ult_smin(<4 x i32> %x) { ; CHECK-LABEL: ult_smin: ; CHECK: # %bb.0: -; CHECK-NEXT: pxor {{.*}}(%rip), %xmm0 -; CHECK-NEXT: pxor %xmm1, %xmm1 -; CHECK-NEXT: pcmpgtd %xmm0, %xmm1 -; CHECK-NEXT: movdqa %xmm1, %xmm0 +; CHECK-NEXT: pcmpeqd %xmm1, %xmm1 +; CHECK-NEXT: pcmpgtd %xmm1, %xmm0 ; CHECK-NEXT: retq %cmp = icmp ult <4 x i32> %x, <i32 -2147483648, i32 -2147483648, i32 -2147483648, i32 -2147483648> %r = sext <4 x i1> %cmp to <4 x i32> |