From bd0d97e1c41f17ea3fd5cba3fe337b4693eb8cbb Mon Sep 17 00:00:00 2001 From: Mitch Phillips Date: Tue, 6 Aug 2019 23:00:43 +0000 Subject: Revert "[X86] Enable -x86-experimental-vector-widening-legalization by default." This reverts commit 3de33245d2c992c9e0af60372043540b60f3a810. This commit broke the MSan buildbots. See https://reviews.llvm.org/rL367901 for more information. llvm-svn: 368107 --- .../X86/unfold-masked-merge-vector-variablemask.ll | 64 ++++++++++++++++------ 1 file changed, 48 insertions(+), 16 deletions(-) (limited to 'llvm/test/CodeGen/X86/unfold-masked-merge-vector-variablemask.ll') diff --git a/llvm/test/CodeGen/X86/unfold-masked-merge-vector-variablemask.ll b/llvm/test/CodeGen/X86/unfold-masked-merge-vector-variablemask.ll index 51b704ec085..8923c393df1 100644 --- a/llvm/test/CodeGen/X86/unfold-masked-merge-vector-variablemask.ll +++ b/llvm/test/CodeGen/X86/unfold-masked-merge-vector-variablemask.ll @@ -68,13 +68,17 @@ define <2 x i8> @out_v2i8(<2 x i8> %x, <2 x i8> %y, <2 x i8> %mask) nounwind { ; CHECK-SSE2-LABEL: out_v2i8: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v2i8: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <2 x i8> %x, %mask %notmask = xor <2 x i8> %mask, @@ -170,13 +174,17 @@ define <4 x i8> @out_v4i8(<4 x i8> %x, <4 x i8> %y, <4 x i8> %mask) nounwind { ; CHECK-SSE2-LABEL: out_v4i8: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v4i8: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <4 x i8> %x, %mask %notmask = xor <4 x i8> %mask, @@ -239,13 +247,17 @@ define <4 x i8> @out_v4i8_undef(<4 x i8> %x, <4 x i8> %y, <4 x i8> %mask) nounwi ; CHECK-SSE2-LABEL: out_v4i8_undef: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v4i8_undef: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <4 x i8> %x, %mask %notmask = xor <4 x i8> %mask, @@ -288,13 +300,17 @@ define <2 x i16> @out_v2i16(<2 x i16> %x, <2 x i16> %y, <2 x i16> %mask) nounwin ; CHECK-SSE2-LABEL: out_v2i16: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v2i16: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <2 x i16> %x, %mask %notmask = xor <2 x i16> %mask, @@ -467,13 +483,17 @@ define <8 x i8> @out_v8i8(<8 x i8> %x, <8 x i8> %y, <8 x i8> %mask) nounwind { ; CHECK-SSE2-LABEL: out_v8i8: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v8i8: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <8 x i8> %x, %mask %notmask = xor <8 x i8> %mask, @@ -548,13 +568,17 @@ define <4 x i16> @out_v4i16(<4 x i16> %x, <4 x i16> %y, <4 x i16> %mask) nounwin ; CHECK-SSE2-LABEL: out_v4i16: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v4i16: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <4 x i16> %x, %mask %notmask = xor <4 x i16> %mask, @@ -617,13 +641,17 @@ define <4 x i16> @out_v4i16_undef(<4 x i16> %x, <4 x i16> %y, <4 x i16> %mask) n ; CHECK-SSE2-LABEL: out_v4i16_undef: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v4i16_undef: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <4 x i16> %x, %mask %notmask = xor <4 x i16> %mask, @@ -664,13 +692,17 @@ define <2 x i32> @out_v2i32(<2 x i32> %x, <2 x i32> %y, <2 x i32> %mask) nounwin ; CHECK-SSE2-LABEL: out_v2i32: ; CHECK-SSE2: # %bb.0: ; CHECK-SSE2-NEXT: andps %xmm2, %xmm0 -; CHECK-SSE2-NEXT: andnps %xmm1, %xmm2 +; CHECK-SSE2-NEXT: xorps {{.*}}(%rip), %xmm2 +; CHECK-SSE2-NEXT: andps %xmm1, %xmm2 ; CHECK-SSE2-NEXT: orps %xmm2, %xmm0 ; CHECK-SSE2-NEXT: retq ; ; CHECK-XOP-LABEL: out_v2i32: ; CHECK-XOP: # %bb.0: -; CHECK-XOP-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm0, %xmm0 +; CHECK-XOP-NEXT: vxorps {{.*}}(%rip), %xmm2, %xmm2 +; CHECK-XOP-NEXT: vandps %xmm2, %xmm1, %xmm1 +; CHECK-XOP-NEXT: vorps %xmm1, %xmm0, %xmm0 ; CHECK-XOP-NEXT: retq %mx = and <2 x i32> %x, %mask %notmask = xor <2 x i32> %mask, -- cgit v1.2.3