[llvm] f65493a - [X86] Teach X86MCInstLower to swap operands of commutable instructions to enable 2-byte VEX encoding.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 4 22:07:57 PST 2019
Author: Craig Topper
Date: 2019-11-04T22:07:46-08:00
New Revision: f65493a83e3bdb402fb1dfa92bcc25707e961147
URL: https://github.com/llvm/llvm-project/commit/f65493a83e3bdb402fb1dfa92bcc25707e961147
DIFF: https://github.com/llvm/llvm-project/commit/f65493a83e3bdb402fb1dfa92bcc25707e961147.diff
LOG: [X86] Teach X86MCInstLower to swap operands of commutable instructions to enable 2-byte VEX encoding.
Summary:
The 2 source operands commutable instructions are encoded in the
VEX.VVVV field and the r/m field of the MODRM byte plus the VEX.B
field.
The VEX.B field is missing from the 2-byte VEX encoding. If the
VEX.VVVV source is 0-7 and the other register is 8-15 we can
swap them to avoid needing the VEX.B field. This works as long as
the VEX.W, VEX.mmmmm, and VEX.X fields are also not needed.
Fixes PR36706.
Reviewers: RKSimon, spatel
Reviewed By: RKSimon
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68550
Added:
Modified:
llvm/lib/Target/X86/X86MCInstLower.cpp
llvm/test/CodeGen/X86/avx-intel-ocl.ll
llvm/test/CodeGen/X86/avx512-mask-op.ll
llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
llvm/test/CodeGen/X86/avx512-vselect.ll
llvm/test/CodeGen/X86/madd.ll
llvm/test/CodeGen/X86/masked_compressstore.ll
llvm/test/CodeGen/X86/masked_expandload.ll
llvm/test/CodeGen/X86/midpoint-int-vec-256.ll
llvm/test/CodeGen/X86/pr29112.ll
llvm/test/CodeGen/X86/sad.ll
llvm/test/CodeGen/X86/uadd_sat_vec.ll
llvm/test/CodeGen/X86/vec_umulo.ll
llvm/test/CodeGen/X86/vector-fshl-256.ll
llvm/test/CodeGen/X86/vector-fshl-512.ll
llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
llvm/test/CodeGen/X86/vector-fshl-rot-512.ll
llvm/test/CodeGen/X86/vector-fshr-256.ll
llvm/test/CodeGen/X86/vector-fshr-512.ll
llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
llvm/test/CodeGen/X86/vector-fshr-rot-512.ll
llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll
llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll
llvm/test/CodeGen/X86/vector-rotate-256.ll
llvm/test/CodeGen/X86/vector-rotate-512.ll
llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll
llvm/test/CodeGen/X86/vector-trunc-math.ll
llvm/test/CodeGen/X86/vector-trunc-packus.ll
llvm/test/CodeGen/X86/x86-interleaved-access.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp
index 49aa0b7984ce..e869aa64a1ee 100644
--- a/llvm/lib/Target/X86/X86MCInstLower.cpp
+++ b/llvm/lib/Target/X86/X86MCInstLower.cpp
@@ -876,6 +876,52 @@ void X86MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
case X86::MOVSX64rr32:
SimplifyMOVSX(OutMI);
break;
+
+ case X86::VCMPPDrri:
+ case X86::VCMPPDYrri:
+ case X86::VCMPPSrri:
+ case X86::VCMPPSYrri:
+ case X86::VCMPSDrr:
+ case X86::VCMPSSrr: {
+ // Swap the operands if it will enable a 2 byte VEX encoding.
+ // FIXME: Change the immediate to improve opportunities?
+ if (!X86II::isX86_64ExtendedReg(OutMI.getOperand(1).getReg()) &&
+ X86II::isX86_64ExtendedReg(OutMI.getOperand(2).getReg())) {
+ unsigned Imm = MI->getOperand(3).getImm() & 0x7;
+ switch (Imm) {
+ default: break;
+ case 0x00: // EQUAL
+ case 0x03: // UNORDERED
+ case 0x04: // NOT EQUAL
+ case 0x07: // ORDERED
+ std::swap(OutMI.getOperand(1), OutMI.getOperand(2));
+ break;
+ }
+ }
+ break;
+ }
+
+ case X86::VMOVHLPSrr:
+ case X86::VUNPCKHPDrr:
+ // These are not truly commutable so hide them from the default case.
+ break;
+
+ default: {
+ // If the instruction is a commutable arithmetic instruction we might be
+ // able to commute the operands to get a 2 byte VEX prefix.
+ uint64_t TSFlags = MI->getDesc().TSFlags;
+ if (MI->getDesc().isCommutable() &&
+ (TSFlags & X86II::EncodingMask) == X86II::VEX &&
+ (TSFlags & X86II::OpMapMask) == X86II::TB &&
+ (TSFlags & X86II::FormMask) == X86II::MRMSrcReg &&
+ !(TSFlags & X86II::VEX_W) && (TSFlags & X86II::VEX_4V) &&
+ OutMI.getNumOperands() == 3) {
+ if (!X86II::isX86_64ExtendedReg(OutMI.getOperand(1).getReg()) &&
+ X86II::isX86_64ExtendedReg(OutMI.getOperand(2).getReg()))
+ std::swap(OutMI.getOperand(1), OutMI.getOperand(2));
+ }
+ break;
+ }
}
}
diff --git a/llvm/test/CodeGen/X86/avx-intel-ocl.ll b/llvm/test/CodeGen/X86/avx-intel-ocl.ll
index 4560061789dd..89630eec72b5 100644
--- a/llvm/test/CodeGen/X86/avx-intel-ocl.ll
+++ b/llvm/test/CodeGen/X86/avx-intel-ocl.ll
@@ -51,8 +51,8 @@ define <16 x float> @testf16_inp(<16 x float> %a, <16 x float> %b) nounwind {
; preserved ymm8-ymm15
; X64-LABEL: testf16_regs
; X64: call
-; X64: vaddps {{%ymm[8-9]}}, {{%ymm[0-1]}}, {{%ymm[0-1]}}
-; X64: vaddps {{%ymm[8-9]}}, {{%ymm[0-1]}}, {{%ymm[0-1]}}
+; X64: vaddps {{%ymm[0-1]}}, {{%ymm[8-9]}}, {{%ymm[0-1]}}
+; X64: vaddps {{%ymm[0-1]}}, {{%ymm[8-9]}}, {{%ymm[0-1]}}
; X64: ret
define <16 x float> @testf16_regs(<16 x float> %a, <16 x float> %b) nounwind {
diff --git a/llvm/test/CodeGen/X86/avx512-mask-op.ll b/llvm/test/CodeGen/X86/avx512-mask-op.ll
index b9724f8c4d6d..e3febe4b38e3 100644
--- a/llvm/test/CodeGen/X86/avx512-mask-op.ll
+++ b/llvm/test/CodeGen/X86/avx512-mask-op.ll
@@ -4906,18 +4906,18 @@ define void @ktest_6(<32 x i16> %w, <32 x i16> %x, <32 x i16> %y, <32 x i16> %z)
; KNL-NEXT: vextracti64x4 $1, %zmm1, %ymm6
; KNL-NEXT: vextracti64x4 $1, %zmm0, %ymm7
; KNL-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm0, %ymm0
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm7, %ymm7
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm1, %ymm1
+; KNL-NEXT: vpcmpeqw %ymm0, %ymm8, %ymm0
+; KNL-NEXT: vpcmpeqw %ymm7, %ymm8, %ymm7
+; KNL-NEXT: vpcmpeqw %ymm1, %ymm8, %ymm1
; KNL-NEXT: vpor %ymm1, %ymm0, %ymm0
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm6, %ymm1
+; KNL-NEXT: vpcmpeqw %ymm6, %ymm8, %ymm1
; KNL-NEXT: vpor %ymm1, %ymm7, %ymm1
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm2, %ymm2
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm5, %ymm5
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm3, %ymm3
+; KNL-NEXT: vpcmpeqw %ymm2, %ymm8, %ymm2
+; KNL-NEXT: vpcmpeqw %ymm5, %ymm8, %ymm5
+; KNL-NEXT: vpcmpeqw %ymm3, %ymm8, %ymm3
; KNL-NEXT: vpor %ymm3, %ymm2, %ymm2
; KNL-NEXT: vpand %ymm2, %ymm0, %ymm0
-; KNL-NEXT: vpcmpeqw %ymm8, %ymm4, %ymm2
+; KNL-NEXT: vpcmpeqw %ymm4, %ymm8, %ymm2
; KNL-NEXT: vpor %ymm2, %ymm5, %ymm2
; KNL-NEXT: vpand %ymm2, %ymm1, %ymm1
; KNL-NEXT: vpmovsxwd %ymm0, %zmm0
@@ -4992,18 +4992,18 @@ define void @ktest_6(<32 x i16> %w, <32 x i16> %x, <32 x i16> %y, <32 x i16> %z)
; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm6
; AVX512DQ-NEXT: vextracti64x4 $1, %zmm0, %ymm7
; AVX512DQ-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm0, %ymm0
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm7, %ymm7
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm1, %ymm1
+; AVX512DQ-NEXT: vpcmpeqw %ymm0, %ymm8, %ymm0
+; AVX512DQ-NEXT: vpcmpeqw %ymm7, %ymm8, %ymm7
+; AVX512DQ-NEXT: vpcmpeqw %ymm1, %ymm8, %ymm1
; AVX512DQ-NEXT: vpor %ymm1, %ymm0, %ymm0
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm6, %ymm1
+; AVX512DQ-NEXT: vpcmpeqw %ymm6, %ymm8, %ymm1
; AVX512DQ-NEXT: vpor %ymm1, %ymm7, %ymm1
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm2, %ymm2
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm5, %ymm5
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm3, %ymm3
+; AVX512DQ-NEXT: vpcmpeqw %ymm2, %ymm8, %ymm2
+; AVX512DQ-NEXT: vpcmpeqw %ymm5, %ymm8, %ymm5
+; AVX512DQ-NEXT: vpcmpeqw %ymm3, %ymm8, %ymm3
; AVX512DQ-NEXT: vpor %ymm3, %ymm2, %ymm2
; AVX512DQ-NEXT: vpand %ymm2, %ymm0, %ymm0
-; AVX512DQ-NEXT: vpcmpeqw %ymm8, %ymm4, %ymm2
+; AVX512DQ-NEXT: vpcmpeqw %ymm4, %ymm8, %ymm2
; AVX512DQ-NEXT: vpor %ymm2, %ymm5, %ymm2
; AVX512DQ-NEXT: vpand %ymm2, %ymm1, %ymm1
; AVX512DQ-NEXT: vpmovsxwd %ymm0, %zmm0
@@ -5075,21 +5075,21 @@ define void @ktest_7(<64 x i8> %w, <64 x i8> %x, <64 x i8> %y, <64 x i8> %z) {
; KNL-NEXT: vextracti64x4 $1, %zmm1, %ymm11
; KNL-NEXT: vextracti64x4 $1, %zmm0, %ymm7
; KNL-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; KNL-NEXT: vpcmpeqb %ymm8, %ymm0, %ymm13
+; KNL-NEXT: vpcmpeqb %ymm0, %ymm8, %ymm13
; KNL-NEXT: vextracti128 $1, %ymm13, %xmm4
-; KNL-NEXT: vpcmpeqb %ymm8, %ymm7, %ymm7
+; KNL-NEXT: vpcmpeqb %ymm7, %ymm8, %ymm7
; KNL-NEXT: vextracti128 $1, %ymm7, %xmm5
-; KNL-NEXT: vpcmpeqb %ymm8, %ymm1, %ymm1
+; KNL-NEXT: vpcmpeqb %ymm1, %ymm8, %ymm1
; KNL-NEXT: vextracti128 $1, %ymm1, %xmm6
; KNL-NEXT: vpor %xmm6, %xmm4, %xmm12
; KNL-NEXT: vpcmpeqb %ymm8, %ymm11, %ymm6
; KNL-NEXT: vextracti128 $1, %ymm6, %xmm4
; KNL-NEXT: vpor %xmm4, %xmm5, %xmm11
-; KNL-NEXT: vpcmpeqb %ymm8, %ymm2, %ymm2
+; KNL-NEXT: vpcmpeqb %ymm2, %ymm8, %ymm2
; KNL-NEXT: vextracti128 $1, %ymm2, %xmm5
; KNL-NEXT: vpcmpeqb %ymm8, %ymm10, %ymm10
; KNL-NEXT: vextracti128 $1, %ymm10, %xmm4
-; KNL-NEXT: vpcmpeqb %ymm8, %ymm3, %ymm3
+; KNL-NEXT: vpcmpeqb %ymm3, %ymm8, %ymm3
; KNL-NEXT: vextracti128 $1, %ymm3, %xmm0
; KNL-NEXT: vpor %xmm0, %xmm5, %xmm0
; KNL-NEXT: vpand %xmm0, %xmm12, %xmm12
@@ -5185,21 +5185,21 @@ define void @ktest_7(<64 x i8> %w, <64 x i8> %x, <64 x i8> %y, <64 x i8> %z) {
; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm11
; AVX512DQ-NEXT: vextracti64x4 $1, %zmm0, %ymm7
; AVX512DQ-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm0, %ymm13
+; AVX512DQ-NEXT: vpcmpeqb %ymm0, %ymm8, %ymm13
; AVX512DQ-NEXT: vextracti128 $1, %ymm13, %xmm4
-; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm7, %ymm7
+; AVX512DQ-NEXT: vpcmpeqb %ymm7, %ymm8, %ymm7
; AVX512DQ-NEXT: vextracti128 $1, %ymm7, %xmm5
-; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm1, %ymm1
+; AVX512DQ-NEXT: vpcmpeqb %ymm1, %ymm8, %ymm1
; AVX512DQ-NEXT: vextracti128 $1, %ymm1, %xmm6
; AVX512DQ-NEXT: vpor %xmm6, %xmm4, %xmm12
; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm11, %ymm6
; AVX512DQ-NEXT: vextracti128 $1, %ymm6, %xmm4
; AVX512DQ-NEXT: vpor %xmm4, %xmm5, %xmm11
-; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm2, %ymm2
+; AVX512DQ-NEXT: vpcmpeqb %ymm2, %ymm8, %ymm2
; AVX512DQ-NEXT: vextracti128 $1, %ymm2, %xmm5
; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm10, %ymm10
; AVX512DQ-NEXT: vextracti128 $1, %ymm10, %xmm4
-; AVX512DQ-NEXT: vpcmpeqb %ymm8, %ymm3, %ymm3
+; AVX512DQ-NEXT: vpcmpeqb %ymm3, %ymm8, %ymm3
; AVX512DQ-NEXT: vextracti128 $1, %ymm3, %xmm0
; AVX512DQ-NEXT: vpor %xmm0, %xmm5, %xmm0
; AVX512DQ-NEXT: vpand %xmm0, %xmm12, %xmm12
diff --git a/llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll b/llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
index fe8b95d89307..1cb5931eb05a 100644
--- a/llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
+++ b/llvm/test/CodeGen/X86/avx512-regcall-NoMask.ll
@@ -386,9 +386,9 @@ define x86_regcallcc float @test_CallargRetFloat(float %a) {
; WIN64-NEXT: .seh_savexmm %xmm8, 0
; WIN64-NEXT: .seh_endprologue
; WIN64-NEXT: vmovss {{.*#+}} xmm8 = mem[0],zero,zero,zero
-; WIN64-NEXT: vaddss %xmm8, %xmm0, %xmm0
+; WIN64-NEXT: vaddss %xmm0, %xmm8, %xmm0
; WIN64-NEXT: callq test_argRetFloat
-; WIN64-NEXT: vaddss %xmm8, %xmm0, %xmm0
+; WIN64-NEXT: vaddss %xmm0, %xmm8, %xmm0
; WIN64-NEXT: vmovaps (%rsp), %xmm8 # 16-byte Reload
; WIN64-NEXT: addq $16, %rsp
; WIN64-NEXT: popq %rsp
@@ -407,9 +407,9 @@ define x86_regcallcc float @test_CallargRetFloat(float %a) {
; LINUXOSX64-NEXT: .cfi_offset %rsp, -16
; LINUXOSX64-NEXT: .cfi_offset %xmm8, -32
; LINUXOSX64-NEXT: vmovss {{.*#+}} xmm8 = mem[0],zero,zero,zero
-; LINUXOSX64-NEXT: vaddss %xmm8, %xmm0, %xmm0
+; LINUXOSX64-NEXT: vaddss %xmm0, %xmm8, %xmm0
; LINUXOSX64-NEXT: callq test_argRetFloat
-; LINUXOSX64-NEXT: vaddss %xmm8, %xmm0, %xmm0
+; LINUXOSX64-NEXT: vaddss %xmm0, %xmm8, %xmm0
; LINUXOSX64-NEXT: vmovaps (%rsp), %xmm8 # 16-byte Reload
; LINUXOSX64-NEXT: addq $16, %rsp
; LINUXOSX64-NEXT: .cfi_def_cfa_offset 16
@@ -468,9 +468,9 @@ define x86_regcallcc double @test_CallargRetDouble(double %a) {
; WIN64-NEXT: .seh_savexmm %xmm8, 0
; WIN64-NEXT: .seh_endprologue
; WIN64-NEXT: vmovsd {{.*#+}} xmm8 = mem[0],zero
-; WIN64-NEXT: vaddsd %xmm8, %xmm0, %xmm0
+; WIN64-NEXT: vaddsd %xmm0, %xmm8, %xmm0
; WIN64-NEXT: callq test_argRetDouble
-; WIN64-NEXT: vaddsd %xmm8, %xmm0, %xmm0
+; WIN64-NEXT: vaddsd %xmm0, %xmm8, %xmm0
; WIN64-NEXT: vmovaps (%rsp), %xmm8 # 16-byte Reload
; WIN64-NEXT: addq $16, %rsp
; WIN64-NEXT: popq %rsp
@@ -489,9 +489,9 @@ define x86_regcallcc double @test_CallargRetDouble(double %a) {
; LINUXOSX64-NEXT: .cfi_offset %rsp, -16
; LINUXOSX64-NEXT: .cfi_offset %xmm8, -32
; LINUXOSX64-NEXT: vmovsd {{.*#+}} xmm8 = mem[0],zero
-; LINUXOSX64-NEXT: vaddsd %xmm8, %xmm0, %xmm0
+; LINUXOSX64-NEXT: vaddsd %xmm0, %xmm8, %xmm0
; LINUXOSX64-NEXT: callq test_argRetDouble
-; LINUXOSX64-NEXT: vaddsd %xmm8, %xmm0, %xmm0
+; LINUXOSX64-NEXT: vaddsd %xmm0, %xmm8, %xmm0
; LINUXOSX64-NEXT: vmovaps (%rsp), %xmm8 # 16-byte Reload
; LINUXOSX64-NEXT: addq $16, %rsp
; LINUXOSX64-NEXT: .cfi_def_cfa_offset 16
diff --git a/llvm/test/CodeGen/X86/avx512-vselect.ll b/llvm/test/CodeGen/X86/avx512-vselect.ll
index 07e5aeac015b..d2c9a8e4208e 100644
--- a/llvm/test/CodeGen/X86/avx512-vselect.ll
+++ b/llvm/test/CodeGen/X86/avx512-vselect.ll
@@ -183,7 +183,7 @@ define <64 x i16> @test8(<64 x i8> %x, <64 x i16> %a, <64 x i16> %b) {
; CHECK-KNL-NEXT: vextracti64x4 $1, %zmm0, %ymm8
; CHECK-KNL-NEXT: vmovdqa 16(%rbp), %ymm9
; CHECK-KNL-NEXT: vpxor %xmm10, %xmm10, %xmm10
-; CHECK-KNL-NEXT: vpcmpeqb %ymm10, %ymm0, %ymm11
+; CHECK-KNL-NEXT: vpcmpeqb %ymm0, %ymm10, %ymm11
; CHECK-KNL-NEXT: vpmovsxbw %xmm11, %ymm0
; CHECK-KNL-NEXT: vpblendvb %ymm0, %ymm1, %ymm5, %ymm0
; CHECK-KNL-NEXT: vextracti128 $1, %ymm11, %xmm1
diff --git a/llvm/test/CodeGen/X86/madd.ll b/llvm/test/CodeGen/X86/madd.ll
index 36dbb46f0b0a..62792ec074ae 100644
--- a/llvm/test/CodeGen/X86/madd.ll
+++ b/llvm/test/CodeGen/X86/madd.ll
@@ -1675,11 +1675,11 @@ define i32 @test_unsigned_short_1024(i16* nocapture readonly, i16* nocapture rea
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm2
; AVX1-NEXT: vextractf128 $1, %ymm8, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm5, %xmm0
-; AVX1-NEXT: vpaddd %xmm8, %xmm6, %xmm1
+; AVX1-NEXT: vpaddd %xmm6, %xmm8, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm8
; AVX1-NEXT: vextractf128 $1, %ymm9, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm13, %xmm0
-; AVX1-NEXT: vpaddd %xmm9, %xmm7, %xmm1
+; AVX1-NEXT: vpaddd %xmm7, %xmm9, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm9
; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm10, %xmm0
diff --git a/llvm/test/CodeGen/X86/masked_compressstore.ll b/llvm/test/CodeGen/X86/masked_compressstore.ll
index 446be15e70df..c275b4c9a20c 100644
--- a/llvm/test/CodeGen/X86/masked_compressstore.ll
+++ b/llvm/test/CodeGen/X86/masked_compressstore.ll
@@ -1877,21 +1877,21 @@ define void @compressstore_v32f32_v32i32(float* %base, <32 x float> %V, <32 x i3
; AVX1-NEXT: vextractf128 $1, %ymm5, %xmm8
; AVX1-NEXT: vpxor %xmm9, %xmm9, %xmm9
; AVX1-NEXT: vpcmpeqd %xmm9, %xmm8, %xmm8
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm5, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm9, %xmm5
; AVX1-NEXT: vpackssdw %xmm8, %xmm5, %xmm8
; AVX1-NEXT: vextractf128 $1, %ymm4, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm5, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm4, %xmm4
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm9, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm4, %xmm9, %xmm4
; AVX1-NEXT: vpackssdw %xmm5, %xmm4, %xmm4
; AVX1-NEXT: vpacksswb %xmm8, %xmm4, %xmm4
; AVX1-NEXT: vpmovmskb %xmm4, %ecx
; AVX1-NEXT: vextractf128 $1, %ymm7, %xmm4
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm4, %xmm4
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm7, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm4, %xmm9, %xmm4
+; AVX1-NEXT: vpcmpeqd %xmm7, %xmm9, %xmm5
; AVX1-NEXT: vpackssdw %xmm4, %xmm5, %xmm4
; AVX1-NEXT: vextractf128 $1, %ymm6, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm5, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm6, %xmm6
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm9, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm6, %xmm9, %xmm6
; AVX1-NEXT: vpackssdw %xmm5, %xmm6, %xmm5
; AVX1-NEXT: vpacksswb %xmm4, %xmm5, %xmm4
; AVX1-NEXT: vpmovmskb %xmm4, %eax
@@ -2158,12 +2158,12 @@ define void @compressstore_v32f32_v32i32(float* %base, <32 x float> %V, <32 x i3
; AVX2-LABEL: compressstore_v32f32_v32i32:
; AVX2: ## %bb.0:
; AVX2-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm7, %ymm7
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm6, %ymm6
+; AVX2-NEXT: vpcmpeqd %ymm7, %ymm8, %ymm7
+; AVX2-NEXT: vpcmpeqd %ymm6, %ymm8, %ymm6
; AVX2-NEXT: vpackssdw %ymm7, %ymm6, %ymm6
; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,2,1,3]
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm5, %ymm5
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm4, %ymm4
+; AVX2-NEXT: vpcmpeqd %ymm5, %ymm8, %ymm5
+; AVX2-NEXT: vpcmpeqd %ymm4, %ymm8, %ymm4
; AVX2-NEXT: vpackssdw %ymm5, %ymm4, %ymm4
; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,1,3]
; AVX2-NEXT: vpacksswb %ymm6, %ymm4, %ymm4
diff --git a/llvm/test/CodeGen/X86/masked_expandload.ll b/llvm/test/CodeGen/X86/masked_expandload.ll
index dc7846f033d2..12cfb932a3c0 100644
--- a/llvm/test/CodeGen/X86/masked_expandload.ll
+++ b/llvm/test/CodeGen/X86/masked_expandload.ll
@@ -2073,21 +2073,21 @@ define <32 x float> @expandload_v32f32_v32i32(float* %base, <32 x float> %src0,
; AVX1-NEXT: vextractf128 $1, %ymm5, %xmm8
; AVX1-NEXT: vpxor %xmm9, %xmm9, %xmm9
; AVX1-NEXT: vpcmpeqd %xmm9, %xmm8, %xmm8
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm5, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm9, %xmm5
; AVX1-NEXT: vpackssdw %xmm8, %xmm5, %xmm8
; AVX1-NEXT: vextractf128 $1, %ymm4, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm5, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm4, %xmm4
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm9, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm4, %xmm9, %xmm4
; AVX1-NEXT: vpackssdw %xmm5, %xmm4, %xmm4
; AVX1-NEXT: vpacksswb %xmm8, %xmm4, %xmm4
; AVX1-NEXT: vpmovmskb %xmm4, %ecx
; AVX1-NEXT: vextractf128 $1, %ymm7, %xmm4
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm4, %xmm4
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm7, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm4, %xmm9, %xmm4
+; AVX1-NEXT: vpcmpeqd %xmm7, %xmm9, %xmm5
; AVX1-NEXT: vpackssdw %xmm4, %xmm5, %xmm4
; AVX1-NEXT: vextractf128 $1, %ymm6, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm5, %xmm5
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm6, %xmm6
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm9, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm6, %xmm9, %xmm6
; AVX1-NEXT: vpackssdw %xmm5, %xmm6, %xmm5
; AVX1-NEXT: vpacksswb %xmm4, %xmm5, %xmm4
; AVX1-NEXT: vpmovmskb %xmm4, %eax
@@ -2404,12 +2404,12 @@ define <32 x float> @expandload_v32f32_v32i32(float* %base, <32 x float> %src0,
; AVX2-LABEL: expandload_v32f32_v32i32:
; AVX2: ## %bb.0:
; AVX2-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm7, %ymm7
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm6, %ymm6
+; AVX2-NEXT: vpcmpeqd %ymm7, %ymm8, %ymm7
+; AVX2-NEXT: vpcmpeqd %ymm6, %ymm8, %ymm6
; AVX2-NEXT: vpackssdw %ymm7, %ymm6, %ymm6
; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,2,1,3]
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm5, %ymm5
-; AVX2-NEXT: vpcmpeqd %ymm8, %ymm4, %ymm4
+; AVX2-NEXT: vpcmpeqd %ymm5, %ymm8, %ymm5
+; AVX2-NEXT: vpcmpeqd %ymm4, %ymm8, %ymm4
; AVX2-NEXT: vpackssdw %ymm5, %ymm4, %ymm4
; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,2,1,3]
; AVX2-NEXT: vpacksswb %ymm6, %ymm4, %ymm4
diff --git a/llvm/test/CodeGen/X86/midpoint-int-vec-256.ll b/llvm/test/CodeGen/X86/midpoint-int-vec-256.ll
index 0d28d6145ceb..c4bd5f8cb1f0 100644
--- a/llvm/test/CodeGen/X86/midpoint-int-vec-256.ll
+++ b/llvm/test/CodeGen/X86/midpoint-int-vec-256.ll
@@ -490,7 +490,7 @@ define <4 x i64> @vec256_i64_signed_reg_reg(<4 x i64> %a1, <4 x i64> %a2) nounwi
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; AVX1-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; AVX1-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; AVX1-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -498,7 +498,7 @@ define <4 x i64> @vec256_i64_signed_reg_reg(<4 x i64> %a1, <4 x i64> %a2) nounwi
; AVX1-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; AVX1-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; AVX1-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -551,7 +551,7 @@ define <4 x i64> @vec256_i64_signed_reg_reg(<4 x i64> %a1, <4 x i64> %a2) nounwi
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOP-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOP-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOP-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -559,7 +559,7 @@ define <4 x i64> @vec256_i64_signed_reg_reg(<4 x i64> %a1, <4 x i64> %a2) nounwi
; XOP-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOP-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOP-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -591,7 +591,7 @@ define <4 x i64> @vec256_i64_signed_reg_reg(<4 x i64> %a1, <4 x i64> %a2) nounwi
; XOPAVX1-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOPAVX1-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOPAVX1-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOPAVX1-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOPAVX1-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOPAVX1-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -599,7 +599,7 @@ define <4 x i64> @vec256_i64_signed_reg_reg(<4 x i64> %a1, <4 x i64> %a2) nounwi
; XOPAVX1-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOPAVX1-NEXT: vpsllq $32, %xmm6, %xmm6
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOPAVX1-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOPAVX1-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOPAVX1-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -778,7 +778,7 @@ define <4 x i64> @vec256_i64_unsigned_reg_reg(<4 x i64> %a1, <4 x i64> %a2) noun
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOP-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOP-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOP-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -786,7 +786,7 @@ define <4 x i64> @vec256_i64_unsigned_reg_reg(<4 x i64> %a1, <4 x i64> %a2) noun
; XOP-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOP-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOP-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -818,7 +818,7 @@ define <4 x i64> @vec256_i64_unsigned_reg_reg(<4 x i64> %a1, <4 x i64> %a2) noun
; XOPAVX1-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOPAVX1-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOPAVX1-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOPAVX1-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOPAVX1-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOPAVX1-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -826,7 +826,7 @@ define <4 x i64> @vec256_i64_unsigned_reg_reg(<4 x i64> %a1, <4 x i64> %a2) noun
; XOPAVX1-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOPAVX1-NEXT: vpsllq $32, %xmm6, %xmm6
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOPAVX1-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOPAVX1-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOPAVX1-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -939,7 +939,7 @@ define <4 x i64> @vec256_i64_signed_mem_reg(<4 x i64>* %a1_addr, <4 x i64> %a2)
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm0, %xmm0
; AVX1-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; AVX1-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; AVX1-FALLBACK-NEXT: vpmuludq %xmm7, %xmm0, %xmm7
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm0, %xmm6
@@ -947,7 +947,7 @@ define <4 x i64> @vec256_i64_signed_mem_reg(<4 x i64>* %a1_addr, <4 x i64> %a2)
; AVX1-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; AVX1-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm0, %xmm0
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; AVX1-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1002,7 +1002,7 @@ define <4 x i64> @vec256_i64_signed_mem_reg(<4 x i64>* %a1_addr, <4 x i64> %a2)
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm0, %xmm0
; XOP-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOP-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOP-FALLBACK-NEXT: vpmuludq %xmm7, %xmm0, %xmm7
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm0, %xmm6
@@ -1010,7 +1010,7 @@ define <4 x i64> @vec256_i64_signed_mem_reg(<4 x i64>* %a1_addr, <4 x i64> %a2)
; XOP-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOP-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm0, %xmm0
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOP-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1043,7 +1043,7 @@ define <4 x i64> @vec256_i64_signed_mem_reg(<4 x i64>* %a1_addr, <4 x i64> %a2)
; XOPAVX1-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOPAVX1-NEXT: vpsrlq $1, %xmm0, %xmm0
; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOPAVX1-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOPAVX1-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOPAVX1-NEXT: vpmuludq %xmm7, %xmm0, %xmm7
; XOPAVX1-NEXT: vpsrlq $32, %xmm0, %xmm6
@@ -1051,7 +1051,7 @@ define <4 x i64> @vec256_i64_signed_mem_reg(<4 x i64>* %a1_addr, <4 x i64> %a2)
; XOPAVX1-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOPAVX1-NEXT: vpsllq $32, %xmm6, %xmm6
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm0, %xmm0
-; XOPAVX1-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOPAVX1-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOPAVX1-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1164,7 +1164,7 @@ define <4 x i64> @vec256_i64_signed_reg_mem(<4 x i64> %a1, <4 x i64>* %a2_addr)
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; AVX1-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; AVX1-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; AVX1-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -1172,7 +1172,7 @@ define <4 x i64> @vec256_i64_signed_reg_mem(<4 x i64> %a1, <4 x i64>* %a2_addr)
; AVX1-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; AVX1-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; AVX1-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1227,7 +1227,7 @@ define <4 x i64> @vec256_i64_signed_reg_mem(<4 x i64> %a1, <4 x i64>* %a2_addr)
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOP-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOP-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOP-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -1235,7 +1235,7 @@ define <4 x i64> @vec256_i64_signed_reg_mem(<4 x i64> %a1, <4 x i64>* %a2_addr)
; XOP-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOP-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOP-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1268,7 +1268,7 @@ define <4 x i64> @vec256_i64_signed_reg_mem(<4 x i64> %a1, <4 x i64>* %a2_addr)
; XOPAVX1-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOPAVX1-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOPAVX1-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOPAVX1-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOPAVX1-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOPAVX1-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -1276,7 +1276,7 @@ define <4 x i64> @vec256_i64_signed_reg_mem(<4 x i64> %a1, <4 x i64>* %a2_addr)
; XOPAVX1-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOPAVX1-NEXT: vpsllq $32, %xmm6, %xmm6
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOPAVX1-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOPAVX1-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOPAVX1-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1390,7 +1390,7 @@ define <4 x i64> @vec256_i64_signed_mem_mem(<4 x i64>* %a1_addr, <4 x i64>* %a2_
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; AVX1-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; AVX1-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; AVX1-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; AVX1-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -1398,7 +1398,7 @@ define <4 x i64> @vec256_i64_signed_mem_mem(<4 x i64>* %a1_addr, <4 x i64>* %a2_
; AVX1-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; AVX1-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; AVX1-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; AVX1-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; AVX1-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; AVX1-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1455,7 +1455,7 @@ define <4 x i64> @vec256_i64_signed_mem_mem(<4 x i64>* %a1_addr, <4 x i64>* %a2_
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOP-FALLBACK-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOP-FALLBACK-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOP-FALLBACK-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOP-FALLBACK-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -1463,7 +1463,7 @@ define <4 x i64> @vec256_i64_signed_mem_mem(<4 x i64>* %a1_addr, <4 x i64>* %a2_
; XOP-FALLBACK-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOP-FALLBACK-NEXT: vpsllq $32, %xmm6, %xmm6
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOP-FALLBACK-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOP-FALLBACK-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOP-FALLBACK-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOP-FALLBACK-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1497,7 +1497,7 @@ define <4 x i64> @vec256_i64_signed_mem_mem(<4 x i64>* %a1_addr, <4 x i64>* %a2_
; XOPAVX1-NEXT: vpsrlq $1, %xmm2, %xmm2
; XOPAVX1-NEXT: vpsrlq $1, %xmm1, %xmm1
; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1]
-; XOPAVX1-NEXT: vpor %xmm8, %xmm5, %xmm5
+; XOPAVX1-NEXT: vpor %xmm5, %xmm8, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm5, %xmm7
; XOPAVX1-NEXT: vpmuludq %xmm7, %xmm1, %xmm7
; XOPAVX1-NEXT: vpsrlq $32, %xmm1, %xmm6
@@ -1505,7 +1505,7 @@ define <4 x i64> @vec256_i64_signed_mem_mem(<4 x i64>* %a1_addr, <4 x i64>* %a2_
; XOPAVX1-NEXT: vpaddq %xmm6, %xmm7, %xmm6
; XOPAVX1-NEXT: vpsllq $32, %xmm6, %xmm6
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm1, %xmm1
-; XOPAVX1-NEXT: vpor %xmm8, %xmm4, %xmm4
+; XOPAVX1-NEXT: vpor %xmm4, %xmm8, %xmm4
; XOPAVX1-NEXT: vpsrlq $32, %xmm4, %xmm5
; XOPAVX1-NEXT: vpmuludq %xmm5, %xmm2, %xmm5
; XOPAVX1-NEXT: vpsrlq $32, %xmm2, %xmm7
@@ -1760,10 +1760,10 @@ define <16 x i16> @vec256_i16_unsigned_reg_reg(<16 x i16> %a1, <16 x i16> %a2) n
; AVX1-FALLBACK-NEXT: vpminuw %xmm2, %xmm3, %xmm4
; AVX1-FALLBACK-NEXT: vpcmpeqw %xmm4, %xmm3, %xmm5
; AVX1-FALLBACK-NEXT: vpcmpeqd %xmm8, %xmm8, %xmm8
-; AVX1-FALLBACK-NEXT: vpxor %xmm8, %xmm5, %xmm5
+; AVX1-FALLBACK-NEXT: vpxor %xmm5, %xmm8, %xmm5
; AVX1-FALLBACK-NEXT: vpminuw %xmm1, %xmm0, %xmm7
; AVX1-FALLBACK-NEXT: vpcmpeqw %xmm7, %xmm0, %xmm6
-; AVX1-FALLBACK-NEXT: vpxor %xmm8, %xmm6, %xmm6
+; AVX1-FALLBACK-NEXT: vpxor %xmm6, %xmm8, %xmm6
; AVX1-FALLBACK-NEXT: vpmaxuw %xmm2, %xmm3, %xmm2
; AVX1-FALLBACK-NEXT: vpmaxuw %xmm1, %xmm0, %xmm1
; AVX1-FALLBACK-NEXT: vpsubw %xmm7, %xmm1, %xmm1
diff --git a/llvm/test/CodeGen/X86/pr29112.ll b/llvm/test/CodeGen/X86/pr29112.ll
index a9e99e4d7b07..0a2dfef43d57 100644
--- a/llvm/test/CodeGen/X86/pr29112.ll
+++ b/llvm/test/CodeGen/X86/pr29112.ll
@@ -44,13 +44,13 @@ define <4 x float> @bar(<4 x float>* %a1p, <4 x float>* %a2p, <4 x float> %a3, <
; CHECK-NEXT: vaddps %xmm1, %xmm0, %xmm8
; CHECK-NEXT: vinsertps {{.*#+}} xmm2 = xmm11[0,1],xmm2[3],xmm11[3]
; CHECK-NEXT: vinsertps {{.*#+}} xmm2 = xmm2[0,1,2],xmm3[2]
-; CHECK-NEXT: vaddps %xmm14, %xmm2, %xmm2
+; CHECK-NEXT: vaddps %xmm2, %xmm14, %xmm2
; CHECK-NEXT: vmovaps %xmm13, %xmm1
; CHECK-NEXT: vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
; CHECK-NEXT: vaddps %xmm10, %xmm13, %xmm10
; CHECK-NEXT: vaddps %xmm13, %xmm13, %xmm3
; CHECK-NEXT: vaddps %xmm12, %xmm14, %xmm0
-; CHECK-NEXT: vaddps %xmm8, %xmm0, %xmm0
+; CHECK-NEXT: vaddps %xmm0, %xmm8, %xmm0
; CHECK-NEXT: vaddps %xmm0, %xmm13, %xmm0
; CHECK-NEXT: vmovaps %xmm3, {{[0-9]+}}(%rsp)
; CHECK-NEXT: vmovaps %xmm10, (%rsp)
diff --git a/llvm/test/CodeGen/X86/sad.ll b/llvm/test/CodeGen/X86/sad.ll
index 918841a1864b..72b24929cf7d 100644
--- a/llvm/test/CodeGen/X86/sad.ll
+++ b/llvm/test/CodeGen/X86/sad.ll
@@ -786,49 +786,49 @@ define i32 @sad_avx64i8() nounwind {
; AVX1-NEXT: vextractf128 $1, %ymm11, %xmm7
; AVX1-NEXT: vpaddd %xmm7, %xmm2, %xmm2
; AVX1-NEXT: vpabsd %xmm1, %xmm1
-; AVX1-NEXT: vpaddd %xmm11, %xmm1, %xmm1
+; AVX1-NEXT: vpaddd %xmm1, %xmm11, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm7
; AVX1-NEXT: vpabsd %xmm6, %xmm1
; AVX1-NEXT: vextractf128 $1, %ymm15, %xmm2
; AVX1-NEXT: vpaddd %xmm2, %xmm1, %xmm1
; AVX1-NEXT: vpabsd %xmm5, %xmm2
-; AVX1-NEXT: vpaddd %xmm15, %xmm2, %xmm2
+; AVX1-NEXT: vpaddd %xmm2, %xmm15, %xmm2
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm15
; AVX1-NEXT: vpabsd %xmm0, %xmm1
; AVX1-NEXT: vextractf128 $1, %ymm14, %xmm2
; AVX1-NEXT: vpaddd %xmm2, %xmm1, %xmm1
; AVX1-NEXT: vpabsd %xmm3, %xmm2
-; AVX1-NEXT: vpaddd %xmm14, %xmm2, %xmm2
+; AVX1-NEXT: vpaddd %xmm2, %xmm14, %xmm2
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm14
; AVX1-NEXT: vpabsd %xmm4, %xmm1
; AVX1-NEXT: vextractf128 $1, %ymm13, %xmm2
; AVX1-NEXT: vpaddd %xmm2, %xmm1, %xmm1
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
-; AVX1-NEXT: vpaddd %xmm13, %xmm0, %xmm0
+; AVX1-NEXT: vpaddd %xmm0, %xmm13, %xmm0
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
; AVX1-NEXT: vextractf128 $1, %ymm8, %xmm1
; AVX1-NEXT: vpaddd %xmm1, %xmm0, %xmm0
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
-; AVX1-NEXT: vpaddd %xmm8, %xmm1, %xmm1
+; AVX1-NEXT: vpaddd %xmm1, %xmm8, %xmm1
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm8
; AVX1-NEXT: vextractf128 $1, %ymm9, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm2, %xmm0
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
-; AVX1-NEXT: vpaddd %xmm9, %xmm1, %xmm1
+; AVX1-NEXT: vpaddd %xmm1, %xmm9, %xmm1
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm9
; AVX1-NEXT: vextractf128 $1, %ymm10, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm2, %xmm0
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload
-; AVX1-NEXT: vpaddd %xmm10, %xmm1, %xmm1
+; AVX1-NEXT: vpaddd %xmm1, %xmm10, %xmm1
; AVX1-NEXT: vpabsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm10
; AVX1-NEXT: vextractf128 $1, %ymm12, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm2, %xmm0
; AVX1-NEXT: vpabsd (%rsp), %xmm1 # 16-byte Folded Reload
-; AVX1-NEXT: vpaddd %xmm12, %xmm1, %xmm1
+; AVX1-NEXT: vpaddd %xmm1, %xmm12, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm12
; AVX1-NEXT: addq $4, %rax
; AVX1-NEXT: jne .LBB2_1
@@ -849,7 +849,7 @@ define i32 @sad_avx64i8() nounwind {
; AVX1-NEXT: vpaddd %xmm0, %xmm2, %xmm0
; AVX1-NEXT: vpaddd %xmm0, %xmm1, %xmm0
; AVX1-NEXT: vpaddd %xmm12, %xmm13, %xmm1
-; AVX1-NEXT: vpaddd %xmm10, %xmm7, %xmm2
+; AVX1-NEXT: vpaddd %xmm7, %xmm10, %xmm2
; AVX1-NEXT: vpaddd %xmm2, %xmm8, %xmm2
; AVX1-NEXT: vpaddd %xmm1, %xmm9, %xmm1
; AVX1-NEXT: vpaddd %xmm1, %xmm15, %xmm1
diff --git a/llvm/test/CodeGen/X86/uadd_sat_vec.ll b/llvm/test/CodeGen/X86/uadd_sat_vec.ll
index 1a20e53003fb..b398c44b4a02 100644
--- a/llvm/test/CodeGen/X86/uadd_sat_vec.ll
+++ b/llvm/test/CodeGen/X86/uadd_sat_vec.ll
@@ -1252,7 +1252,7 @@ define <8 x i64> @v8i64(<8 x i64> %x, <8 x i64> %y) nounwind {
; AVX1-NEXT: vpxor %xmm4, %xmm5, %xmm9
; AVX1-NEXT: vxorps %xmm7, %xmm7, %xmm7
; AVX1-NEXT: vcmptrueps %ymm7, %ymm7, %ymm10
-; AVX1-NEXT: vxorps %ymm10, %ymm2, %ymm8
+; AVX1-NEXT: vxorps %ymm2, %ymm10, %ymm8
; AVX1-NEXT: vextractf128 $1, %ymm8, %xmm6
; AVX1-NEXT: vpxor %xmm4, %xmm6, %xmm7
; AVX1-NEXT: vpcmpgtq %xmm9, %xmm7, %xmm7
@@ -1267,7 +1267,7 @@ define <8 x i64> @v8i64(<8 x i64> %x, <8 x i64> %y) nounwind {
; AVX1-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm0
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm2
; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm8
-; AVX1-NEXT: vxorps %ymm10, %ymm3, %ymm6
+; AVX1-NEXT: vxorps %ymm3, %ymm10, %ymm6
; AVX1-NEXT: vextractf128 $1, %ymm6, %xmm7
; AVX1-NEXT: vpxor %xmm4, %xmm7, %xmm5
; AVX1-NEXT: vpcmpgtq %xmm8, %xmm5, %xmm5
diff --git a/llvm/test/CodeGen/X86/vec_umulo.ll b/llvm/test/CodeGen/X86/vec_umulo.ll
index 54be3ebfbfa1..cda9ee9ed172 100644
--- a/llvm/test/CodeGen/X86/vec_umulo.ll
+++ b/llvm/test/CodeGen/X86/vec_umulo.ll
@@ -555,7 +555,7 @@ define <6 x i32> @umulo_v6i32(<6 x i32> %a0, <6 x i32> %a1, <6 x i32>* %p2) noun
; AVX1-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3],xmm5[4,5],xmm2[6,7]
; AVX1-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm2, %xmm2
+; AVX1-NEXT: vpcmpeqd %xmm2, %xmm8, %xmm2
; AVX1-NEXT: vpcmpeqd %xmm6, %xmm6, %xmm6
; AVX1-NEXT: vpxor %xmm6, %xmm2, %xmm2
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[1,1,3,3]
@@ -564,7 +564,7 @@ define <6 x i32> @umulo_v6i32(<6 x i32> %a0, <6 x i32> %a1, <6 x i32>* %p2) noun
; AVX1-NEXT: vpmuludq %xmm1, %xmm0, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3],xmm7[4,5],xmm5[6,7]
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm5, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm8, %xmm5
; AVX1-NEXT: vpxor %xmm6, %xmm5, %xmm5
; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm5, %ymm2
; AVX1-NEXT: vpmulld %xmm1, %xmm0, %xmm0
@@ -727,7 +727,7 @@ define <8 x i32> @umulo_v8i32(<8 x i32> %a0, <8 x i32> %a1, <8 x i32>* %p2) noun
; AVX1-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm2 = xmm5[0,1],xmm2[2,3],xmm5[4,5],xmm2[6,7]
; AVX1-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm2, %xmm2
+; AVX1-NEXT: vpcmpeqd %xmm2, %xmm8, %xmm2
; AVX1-NEXT: vpcmpeqd %xmm6, %xmm6, %xmm6
; AVX1-NEXT: vpxor %xmm6, %xmm2, %xmm2
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm1[1,1,3,3]
@@ -736,7 +736,7 @@ define <8 x i32> @umulo_v8i32(<8 x i32> %a0, <8 x i32> %a1, <8 x i32>* %p2) noun
; AVX1-NEXT: vpmuludq %xmm1, %xmm0, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3],xmm7[4,5],xmm5[6,7]
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm5, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm8, %xmm5
; AVX1-NEXT: vpxor %xmm6, %xmm5, %xmm5
; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm5, %ymm2
; AVX1-NEXT: vpmulld %xmm1, %xmm0, %xmm0
@@ -975,17 +975,17 @@ define <16 x i32> @umulo_v16i32(<16 x i32> %a0, <16 x i32> %a1, <16 x i32>* %p2)
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm7 = xmm7[0,1],xmm6[2,3],xmm7[4,5],xmm6[6,7]
; AVX1-NEXT: vpxor %xmm8, %xmm8, %xmm8
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm7, %xmm7
+; AVX1-NEXT: vpcmpeqd %xmm7, %xmm8, %xmm7
; AVX1-NEXT: vpcmpeqd %xmm9, %xmm9, %xmm9
-; AVX1-NEXT: vpxor %xmm9, %xmm7, %xmm7
+; AVX1-NEXT: vpxor %xmm7, %xmm9, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm6 = xmm3[1,1,3,3]
; AVX1-NEXT: vpshufd {{.*#+}} xmm4 = xmm1[1,1,3,3]
; AVX1-NEXT: vpmuludq %xmm6, %xmm4, %xmm4
; AVX1-NEXT: vpmuludq %xmm3, %xmm1, %xmm6
; AVX1-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm4 = xmm6[0,1],xmm4[2,3],xmm6[4,5],xmm4[6,7]
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm4, %xmm4
-; AVX1-NEXT: vpxor %xmm9, %xmm4, %xmm4
+; AVX1-NEXT: vpcmpeqd %xmm4, %xmm8, %xmm4
+; AVX1-NEXT: vpxor %xmm4, %xmm9, %xmm4
; AVX1-NEXT: vpackssdw %xmm7, %xmm4, %xmm11
; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm6[1,1,3,3]
@@ -995,16 +995,16 @@ define <16 x i32> @umulo_v16i32(<16 x i32> %a0, <16 x i32> %a1, <16 x i32>* %p2)
; AVX1-NEXT: vpmuludq %xmm6, %xmm4, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3],xmm7[4,5],xmm5[6,7]
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm5, %xmm5
-; AVX1-NEXT: vpxor %xmm9, %xmm5, %xmm13
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm8, %xmm5
+; AVX1-NEXT: vpxor %xmm5, %xmm9, %xmm13
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm2[1,1,3,3]
; AVX1-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,1,3,3]
; AVX1-NEXT: vpmuludq %xmm7, %xmm5, %xmm5
; AVX1-NEXT: vpmuludq %xmm2, %xmm0, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,1,3,3]
; AVX1-NEXT: vpblendw {{.*#+}} xmm5 = xmm7[0,1],xmm5[2,3],xmm7[4,5],xmm5[6,7]
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm5, %xmm5
-; AVX1-NEXT: vpxor %xmm9, %xmm5, %xmm5
+; AVX1-NEXT: vpcmpeqd %xmm5, %xmm8, %xmm5
+; AVX1-NEXT: vpxor %xmm5, %xmm9, %xmm5
; AVX1-NEXT: vpackssdw %xmm13, %xmm5, %xmm5
; AVX1-NEXT: vpacksswb %xmm11, %xmm5, %xmm5
; AVX1-NEXT: vpmulld %xmm2, %xmm0, %xmm2
diff --git a/llvm/test/CodeGen/X86/vector-fshl-256.ll b/llvm/test/CodeGen/X86/vector-fshl-256.ll
index cf8a80cf9db9..211aea7f5f5a 100644
--- a/llvm/test/CodeGen/X86/vector-fshl-256.ll
+++ b/llvm/test/CodeGen/X86/vector-fshl-256.ll
@@ -230,8 +230,8 @@ define <8 x i32> @var_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %amt)
; AVX1-NEXT: vpmulld %xmm5, %xmm0, %xmm5
; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm4
; AVX1-NEXT: vorps %ymm1, %ymm4, %ymm1
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm3, %xmm3
-; AVX1-NEXT: vpcmpeqd %xmm9, %xmm2, %xmm2
+; AVX1-NEXT: vpcmpeqd %xmm3, %xmm9, %xmm3
+; AVX1-NEXT: vpcmpeqd %xmm2, %xmm9, %xmm2
; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm2
; AVX1-NEXT: vblendvps %ymm2, %ymm0, %ymm1, %ymm0
; AVX1-NEXT: retq
@@ -606,7 +606,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
; AVX1-NEXT: vpsrlw $4, %xmm4, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm6
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm6
; AVX1-NEXT: vandps {{.*}}(%rip), %ymm2, %ymm2
; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
@@ -615,7 +615,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vpblendvb %xmm5, %xmm6, %xmm4, %xmm4
; AVX1-NEXT: vpsrlw $2, %xmm4, %xmm6
; AVX1-NEXT: vmovdqa {{.*#+}} xmm10 = [63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63]
-; AVX1-NEXT: vpand %xmm10, %xmm6, %xmm6
+; AVX1-NEXT: vpand %xmm6, %xmm10, %xmm6
; AVX1-NEXT: vpaddb %xmm5, %xmm5, %xmm5
; AVX1-NEXT: vpblendvb %xmm5, %xmm6, %xmm4, %xmm4
; AVX1-NEXT: vpsrlw $1, %xmm4, %xmm6
@@ -624,12 +624,12 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vpaddb %xmm5, %xmm5, %xmm5
; AVX1-NEXT: vpblendvb %xmm5, %xmm6, %xmm4, %xmm4
; AVX1-NEXT: vpsrlw $4, %xmm1, %xmm5
-; AVX1-NEXT: vpand %xmm8, %xmm5, %xmm5
+; AVX1-NEXT: vpand %xmm5, %xmm8, %xmm5
; AVX1-NEXT: vpsubb %xmm2, %xmm9, %xmm6
; AVX1-NEXT: vpsllw $5, %xmm6, %xmm6
; AVX1-NEXT: vpblendvb %xmm6, %xmm5, %xmm1, %xmm1
; AVX1-NEXT: vpsrlw $2, %xmm1, %xmm5
-; AVX1-NEXT: vpand %xmm10, %xmm5, %xmm5
+; AVX1-NEXT: vpand %xmm5, %xmm10, %xmm5
; AVX1-NEXT: vpaddb %xmm6, %xmm6, %xmm6
; AVX1-NEXT: vpblendvb %xmm6, %xmm5, %xmm1, %xmm1
; AVX1-NEXT: vpsrlw $1, %xmm1, %xmm5
@@ -663,7 +663,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vpaddb %xmm6, %xmm6, %xmm6
; AVX1-NEXT: vpblendvb %xmm6, %xmm5, %xmm1, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm1, %ymm1
-; AVX1-NEXT: vorps %ymm8, %ymm1, %ymm1
+; AVX1-NEXT: vorps %ymm1, %ymm8, %ymm1
; AVX1-NEXT: vpxor %xmm4, %xmm4, %xmm4
; AVX1-NEXT: vpcmpeqb %xmm4, %xmm3, %xmm3
; AVX1-NEXT: vpcmpeqb %xmm4, %xmm2, %xmm2
@@ -1477,8 +1477,8 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
; AVX1-NEXT: vpand %xmm6, %xmm1, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
; AVX1-NEXT: vorps %ymm1, %ymm4, %ymm1
-; AVX1-NEXT: vpcmpeqb %xmm8, %xmm5, %xmm3
-; AVX1-NEXT: vpcmpeqb %xmm8, %xmm2, %xmm2
+; AVX1-NEXT: vpcmpeqb %xmm5, %xmm8, %xmm3
+; AVX1-NEXT: vpcmpeqb %xmm2, %xmm8, %xmm2
; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm2
; AVX1-NEXT: vandnps %ymm1, %ymm2, %ymm1
; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
diff --git a/llvm/test/CodeGen/X86/vector-fshl-512.ll b/llvm/test/CodeGen/X86/vector-fshl-512.ll
index b6c5d9f744ef..e45428d8fff5 100644
--- a/llvm/test/CodeGen/X86/vector-fshl-512.ll
+++ b/llvm/test/CodeGen/X86/vector-fshl-512.ll
@@ -317,15 +317,15 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %amt)
; AVX512F-NEXT: vpsllw $5, %ymm6, %ymm6
; AVX512F-NEXT: vpblendvb %ymm6, %ymm5, %ymm1, %ymm1
; AVX512F-NEXT: vpsrlw $2, %ymm1, %ymm5
-; AVX512F-NEXT: vpand %ymm14, %ymm5, %ymm5
+; AVX512F-NEXT: vpand %ymm5, %ymm14, %ymm5
; AVX512F-NEXT: vpaddb %ymm6, %ymm6, %ymm6
; AVX512F-NEXT: vpblendvb %ymm6, %ymm5, %ymm1, %ymm1
; AVX512F-NEXT: vpsrlw $1, %ymm1, %ymm5
-; AVX512F-NEXT: vpand %ymm15, %ymm5, %ymm5
+; AVX512F-NEXT: vpand %ymm5, %ymm15, %ymm5
; AVX512F-NEXT: vpaddb %ymm6, %ymm6, %ymm6
; AVX512F-NEXT: vpblendvb %ymm6, %ymm5, %ymm1, %ymm1
; AVX512F-NEXT: vpor %ymm1, %ymm4, %ymm1
-; AVX512F-NEXT: vpcmpeqb %ymm10, %ymm2, %ymm2
+; AVX512F-NEXT: vpcmpeqb %ymm2, %ymm10, %ymm2
; AVX512F-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
; AVX512F-NEXT: vinserti64x4 $1, %ymm3, %zmm0, %zmm0
; AVX512F-NEXT: retq
@@ -339,7 +339,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %amt)
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm7 = [240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240]
; AVX512VL-NEXT: vpand %ymm7, %ymm6, %ymm6
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm8 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
-; AVX512VL-NEXT: vpand %ymm8, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm8, %ymm5
; AVX512VL-NEXT: vpsllw $5, %ymm5, %ymm9
; AVX512VL-NEXT: vpblendvb %ymm9, %ymm6, %ymm3, %ymm6
; AVX512VL-NEXT: vpsllw $2, %ymm6, %ymm10
@@ -373,27 +373,27 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %amt)
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm3, %ymm4, %ymm3
; AVX512VL-NEXT: vpsllw $4, %ymm0, %ymm4
; AVX512VL-NEXT: vpand %ymm7, %ymm4, %ymm4
-; AVX512VL-NEXT: vpand %ymm8, %ymm2, %ymm2
+; AVX512VL-NEXT: vpand %ymm2, %ymm8, %ymm2
; AVX512VL-NEXT: vpsllw $5, %ymm2, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm4, %ymm0, %ymm4
; AVX512VL-NEXT: vpsllw $2, %ymm4, %ymm7
-; AVX512VL-NEXT: vpand %ymm11, %ymm7, %ymm7
+; AVX512VL-NEXT: vpand %ymm7, %ymm11, %ymm7
; AVX512VL-NEXT: vpaddb %ymm5, %ymm5, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm7, %ymm4, %ymm4
; AVX512VL-NEXT: vpaddb %ymm4, %ymm4, %ymm7
; AVX512VL-NEXT: vpaddb %ymm5, %ymm5, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm7, %ymm4, %ymm4
; AVX512VL-NEXT: vpsrlw $4, %ymm1, %ymm5
-; AVX512VL-NEXT: vpand %ymm10, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm10, %ymm5
; AVX512VL-NEXT: vpsubb %ymm2, %ymm12, %ymm7
; AVX512VL-NEXT: vpsllw $5, %ymm7, %ymm7
; AVX512VL-NEXT: vpblendvb %ymm7, %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpsrlw $2, %ymm1, %ymm5
-; AVX512VL-NEXT: vpand %ymm14, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm14, %ymm5
; AVX512VL-NEXT: vpaddb %ymm7, %ymm7, %ymm7
; AVX512VL-NEXT: vpblendvb %ymm7, %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpsrlw $1, %ymm1, %ymm5
-; AVX512VL-NEXT: vpand %ymm15, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm15, %ymm5
; AVX512VL-NEXT: vpaddb %ymm7, %ymm7, %ymm7
; AVX512VL-NEXT: vpblendvb %ymm7, %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpor %ymm1, %ymm4, %ymm1
@@ -837,7 +837,7 @@ define <64 x i8> @splatvar_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %
; AVX512F-NEXT: vpand %ymm6, %ymm9, %ymm8
; AVX512F-NEXT: vpor %ymm8, %ymm10, %ymm8
; AVX512F-NEXT: vpxor %xmm9, %xmm9, %xmm9
-; AVX512F-NEXT: vpcmpeqb %ymm9, %ymm2, %ymm2
+; AVX512F-NEXT: vpcmpeqb %ymm2, %ymm9, %ymm2
; AVX512F-NEXT: vpblendvb %ymm2, %ymm4, %ymm8, %ymm4
; AVX512F-NEXT: vpsllw %xmm5, %ymm0, %ymm5
; AVX512F-NEXT: vpand %ymm7, %ymm5, %ymm5
@@ -870,7 +870,7 @@ define <64 x i8> @splatvar_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %
; AVX512VL-NEXT: vpand %ymm6, %ymm9, %ymm8
; AVX512VL-NEXT: vpor %ymm8, %ymm10, %ymm8
; AVX512VL-NEXT: vpxor %xmm9, %xmm9, %xmm9
-; AVX512VL-NEXT: vpcmpeqb %ymm9, %ymm2, %ymm2
+; AVX512VL-NEXT: vpcmpeqb %ymm2, %ymm9, %ymm2
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm4, %ymm8, %ymm4
; AVX512VL-NEXT: vpsllw %xmm5, %ymm0, %ymm5
; AVX512VL-NEXT: vpand %ymm7, %ymm5, %ymm5
@@ -1154,7 +1154,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512F-NEXT: vpblendvb %ymm6, %ymm4, %ymm3, %ymm4
; AVX512F-NEXT: vpsllw $2, %ymm4, %ymm7
; AVX512F-NEXT: vmovdqa {{.*#+}} ymm8 = [252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252]
-; AVX512F-NEXT: vpand %ymm8, %ymm7, %ymm7
+; AVX512F-NEXT: vpand %ymm7, %ymm8, %ymm7
; AVX512F-NEXT: vpaddb %ymm6, %ymm6, %ymm9
; AVX512F-NEXT: vpblendvb %ymm9, %ymm7, %ymm4, %ymm4
; AVX512F-NEXT: vpaddb %ymm4, %ymm4, %ymm7
@@ -1169,7 +1169,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm2 = ymm2[0],ymm7[0],ymm2[1],ymm7[1],ymm2[2],ymm7[2],ymm2[3],ymm7[3],ymm2[4],ymm7[4],ymm2[5],ymm7[5],ymm2[6],ymm7[6],ymm2[7],ymm7[7],ymm2[16],ymm7[16],ymm2[17],ymm7[17],ymm2[18],ymm7[18],ymm2[19],ymm7[19],ymm2[20],ymm7[20],ymm2[21],ymm7[21],ymm2[22],ymm7[22],ymm2[23],ymm7[23]
; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm13 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512F-NEXT: # ymm13 = mem[0,1,0,1]
-; AVX512F-NEXT: vpmullw %ymm13, %ymm2, %ymm2
+; AVX512F-NEXT: vpmullw %ymm2, %ymm13, %ymm2
; AVX512F-NEXT: vpsrlw $8, %ymm2, %ymm2
; AVX512F-NEXT: vpackuswb %ymm11, %ymm2, %ymm2
; AVX512F-NEXT: vpor %ymm2, %ymm4, %ymm2
@@ -1179,15 +1179,15 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512F-NEXT: vpand %ymm5, %ymm3, %ymm3
; AVX512F-NEXT: vpblendvb %ymm6, %ymm3, %ymm0, %ymm3
; AVX512F-NEXT: vpsllw $2, %ymm3, %ymm5
-; AVX512F-NEXT: vpand %ymm8, %ymm5, %ymm5
+; AVX512F-NEXT: vpand %ymm5, %ymm8, %ymm5
; AVX512F-NEXT: vpblendvb %ymm9, %ymm5, %ymm3, %ymm3
; AVX512F-NEXT: vpaddb %ymm3, %ymm3, %ymm5
; AVX512F-NEXT: vpblendvb %ymm10, %ymm5, %ymm3, %ymm3
; AVX512F-NEXT: vpunpckhbw {{.*#+}} ymm5 = ymm1[8],ymm7[8],ymm1[9],ymm7[9],ymm1[10],ymm7[10],ymm1[11],ymm7[11],ymm1[12],ymm7[12],ymm1[13],ymm7[13],ymm1[14],ymm7[14],ymm1[15],ymm7[15],ymm1[24],ymm7[24],ymm1[25],ymm7[25],ymm1[26],ymm7[26],ymm1[27],ymm7[27],ymm1[28],ymm7[28],ymm1[29],ymm7[29],ymm1[30],ymm7[30],ymm1[31],ymm7[31]
-; AVX512F-NEXT: vpmullw %ymm12, %ymm5, %ymm5
+; AVX512F-NEXT: vpmullw %ymm5, %ymm12, %ymm5
; AVX512F-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[1],ymm7[1],ymm1[2],ymm7[2],ymm1[3],ymm7[3],ymm1[4],ymm7[4],ymm1[5],ymm7[5],ymm1[6],ymm7[6],ymm1[7],ymm7[7],ymm1[16],ymm7[16],ymm1[17],ymm7[17],ymm1[18],ymm7[18],ymm1[19],ymm7[19],ymm1[20],ymm7[20],ymm1[21],ymm7[21],ymm1[22],ymm7[22],ymm1[23],ymm7[23]
-; AVX512F-NEXT: vpmullw %ymm13, %ymm1, %ymm1
+; AVX512F-NEXT: vpmullw %ymm1, %ymm13, %ymm1
; AVX512F-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512F-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
; AVX512F-NEXT: vpor %ymm1, %ymm3, %ymm1
@@ -1207,7 +1207,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512VL-NEXT: vpblendvb %ymm6, %ymm4, %ymm3, %ymm4
; AVX512VL-NEXT: vpsllw $2, %ymm4, %ymm7
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm8 = [252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252]
-; AVX512VL-NEXT: vpand %ymm8, %ymm7, %ymm7
+; AVX512VL-NEXT: vpand %ymm7, %ymm8, %ymm7
; AVX512VL-NEXT: vpaddb %ymm6, %ymm6, %ymm9
; AVX512VL-NEXT: vpblendvb %ymm9, %ymm7, %ymm4, %ymm4
; AVX512VL-NEXT: vpaddb %ymm4, %ymm4, %ymm7
@@ -1217,13 +1217,13 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512VL-NEXT: vpsrlw $8, %ymm7, %ymm7
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [256,128,64,32,16,8,4,2,256,128,64,32,16,8,4,2]
; AVX512VL-NEXT: # ymm11 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm11, %ymm7, %ymm7
+; AVX512VL-NEXT: vpmullw %ymm7, %ymm11, %ymm7
; AVX512VL-NEXT: vpsrlw $8, %ymm7, %ymm7
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm2 = ymm2[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm2, %ymm2
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm12 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512VL-NEXT: # ymm12 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm12, %ymm2, %ymm2
+; AVX512VL-NEXT: vpmullw %ymm2, %ymm12, %ymm2
; AVX512VL-NEXT: vpsrlw $8, %ymm2, %ymm2
; AVX512VL-NEXT: vpackuswb %ymm7, %ymm2, %ymm2
; AVX512VL-NEXT: vpor %ymm2, %ymm4, %ymm2
@@ -1233,17 +1233,17 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512VL-NEXT: vpand %ymm5, %ymm3, %ymm3
; AVX512VL-NEXT: vpblendvb %ymm6, %ymm3, %ymm0, %ymm3
; AVX512VL-NEXT: vpsllw $2, %ymm3, %ymm5
-; AVX512VL-NEXT: vpand %ymm8, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm8, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm9, %ymm5, %ymm3, %ymm3
; AVX512VL-NEXT: vpaddb %ymm3, %ymm3, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm10, %ymm5, %ymm3, %ymm3
; AVX512VL-NEXT: vpunpckhbw {{.*#+}} ymm5 = ymm1[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31]
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
-; AVX512VL-NEXT: vpmullw %ymm11, %ymm5, %ymm5
+; AVX512VL-NEXT: vpmullw %ymm5, %ymm11, %ymm5
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
-; AVX512VL-NEXT: vpmullw %ymm12, %ymm1, %ymm1
+; AVX512VL-NEXT: vpmullw %ymm1, %ymm12, %ymm1
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpor %ymm1, %ymm3, %ymm1
diff --git a/llvm/test/CodeGen/X86/vector-fshl-rot-256.ll b/llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
index ca624b0a82ea..ba4279f8d0c8 100644
--- a/llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
+++ b/llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
@@ -358,7 +358,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %amt) nounwind {
; AVX1-NEXT: vpblendvb %xmm5, %xmm3, %xmm2, %xmm2
; AVX1-NEXT: vpsrlw $7, %xmm2, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm3
; AVX1-NEXT: vpaddb %xmm2, %xmm2, %xmm7
; AVX1-NEXT: vpor %xmm3, %xmm7, %xmm3
; AVX1-NEXT: vpaddb %xmm5, %xmm5, %xmm5
@@ -378,7 +378,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %amt) nounwind {
; AVX1-NEXT: vpaddb %xmm1, %xmm1, %xmm1
; AVX1-NEXT: vpblendvb %xmm1, %xmm3, %xmm0, %xmm0
; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm3
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm3
; AVX1-NEXT: vpaddb %xmm0, %xmm0, %xmm4
; AVX1-NEXT: vpor %xmm3, %xmm4, %xmm3
; AVX1-NEXT: vpaddb %xmm1, %xmm1, %xmm1
@@ -1141,7 +1141,7 @@ define <32 x i8> @constant_funnnel_v32i8(<32 x i8> %x) nounwind {
; AVX1-NEXT: vpxor %xmm8, %xmm8, %xmm8
; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm1[8],xmm8[8],xmm1[9],xmm8[9],xmm1[10],xmm8[10],xmm1[11],xmm8[11],xmm1[12],xmm8[12],xmm1[13],xmm8[13],xmm1[14],xmm8[14],xmm1[15],xmm8[15]
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [256,128,64,32,16,8,4,2]
-; AVX1-NEXT: vpmullw %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpmullw %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpsrlw $8, %xmm3, %xmm3
; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
; AVX1-NEXT: vmovdqa {{.*#+}} xmm6 = [256,2,4,8,16,32,64,128]
@@ -1159,7 +1159,7 @@ define <32 x i8> @constant_funnnel_v32i8(<32 x i8> %x) nounwind {
; AVX1-NEXT: vpackuswb %xmm1, %xmm5, %xmm1
; AVX1-NEXT: vpor %xmm3, %xmm1, %xmm1
; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm0[8],xmm8[8],xmm0[9],xmm8[9],xmm0[10],xmm8[10],xmm0[11],xmm8[11],xmm0[12],xmm8[12],xmm0[13],xmm8[13],xmm0[14],xmm8[14],xmm0[15],xmm8[15]
-; AVX1-NEXT: vpmullw %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpmullw %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpsrlw $8, %xmm3, %xmm3
; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
; AVX1-NEXT: vpmullw %xmm6, %xmm5, %xmm6
diff --git a/llvm/test/CodeGen/X86/vector-fshl-rot-512.ll b/llvm/test/CodeGen/X86/vector-fshl-rot-512.ll
index 8cb0f36a1762..6a7865e51d2b 100644
--- a/llvm/test/CodeGen/X86/vector-fshl-rot-512.ll
+++ b/llvm/test/CodeGen/X86/vector-fshl-rot-512.ll
@@ -138,7 +138,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %amt) nounwind {
; AVX512F-NEXT: vpblendvb %ymm2, %ymm4, %ymm3, %ymm3
; AVX512F-NEXT: vpsrlw $7, %ymm3, %ymm4
; AVX512F-NEXT: vmovdqa {{.*#+}} ymm8 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX512F-NEXT: vpand %ymm8, %ymm4, %ymm4
+; AVX512F-NEXT: vpand %ymm4, %ymm8, %ymm4
; AVX512F-NEXT: vpaddb %ymm3, %ymm3, %ymm9
; AVX512F-NEXT: vpor %ymm4, %ymm9, %ymm4
; AVX512F-NEXT: vpaddb %ymm2, %ymm2, %ymm2
@@ -159,7 +159,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %amt) nounwind {
; AVX512F-NEXT: vpaddb %ymm1, %ymm1, %ymm1
; AVX512F-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpsrlw $7, %ymm0, %ymm3
-; AVX512F-NEXT: vpand %ymm8, %ymm3, %ymm3
+; AVX512F-NEXT: vpand %ymm3, %ymm8, %ymm3
; AVX512F-NEXT: vpaddb %ymm0, %ymm0, %ymm4
; AVX512F-NEXT: vpor %ymm3, %ymm4, %ymm3
; AVX512F-NEXT: vpaddb %ymm1, %ymm1, %ymm1
@@ -598,7 +598,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[1],ymm5[1],ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[4],ymm5[4],ymm1[5],ymm5[5],ymm1[6],ymm5[6],ymm1[7],ymm5[7],ymm1[16],ymm5[16],ymm1[17],ymm5[17],ymm1[18],ymm5[18],ymm1[19],ymm5[19],ymm1[20],ymm5[20],ymm1[21],ymm5[21],ymm1[22],ymm5[22],ymm1[23],ymm5[23]
; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512F-NEXT: # ymm11 = mem[0,1,0,1]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm1, %ymm1
+; AVX512F-NEXT: vpmullw %ymm1, %ymm11, %ymm1
; AVX512F-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512F-NEXT: vpackuswb %ymm9, %ymm1, %ymm1
; AVX512F-NEXT: vpor %ymm1, %ymm2, %ymm1
@@ -611,10 +611,10 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512F-NEXT: vpaddb %ymm2, %ymm2, %ymm3
; AVX512F-NEXT: vpblendvb %ymm8, %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8],ymm5[8],ymm0[9],ymm5[9],ymm0[10],ymm5[10],ymm0[11],ymm5[11],ymm0[12],ymm5[12],ymm0[13],ymm5[13],ymm0[14],ymm5[14],ymm0[15],ymm5[15],ymm0[24],ymm5[24],ymm0[25],ymm5[25],ymm0[26],ymm5[26],ymm0[27],ymm5[27],ymm0[28],ymm5[28],ymm0[29],ymm5[29],ymm0[30],ymm5[30],ymm0[31],ymm5[31]
-; AVX512F-NEXT: vpmullw %ymm10, %ymm3, %ymm3
+; AVX512F-NEXT: vpmullw %ymm3, %ymm10, %ymm3
; AVX512F-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[2],ymm5[2],ymm0[3],ymm5[3],ymm0[4],ymm5[4],ymm0[5],ymm5[5],ymm0[6],ymm5[6],ymm0[7],ymm5[7],ymm0[16],ymm5[16],ymm0[17],ymm5[17],ymm0[18],ymm5[18],ymm0[19],ymm5[19],ymm0[20],ymm5[20],ymm0[21],ymm5[21],ymm0[22],ymm5[22],ymm0[23],ymm5[23]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm0, %ymm0
+; AVX512F-NEXT: vpmullw %ymm0, %ymm11, %ymm0
; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
; AVX512F-NEXT: vpackuswb %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpor %ymm0, %ymm2, %ymm0
@@ -642,13 +642,13 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [256,128,64,32,16,8,4,2,256,128,64,32,16,8,4,2]
; AVX512VL-NEXT: # ymm9 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm9, %ymm5, %ymm5
+; AVX512VL-NEXT: vpmullw %ymm5, %ymm9, %ymm5
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512VL-NEXT: # ymm10 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm1, %ymm1
+; AVX512VL-NEXT: vpmullw %ymm1, %ymm10, %ymm1
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpor %ymm1, %ymm2, %ymm1
@@ -662,11 +662,11 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512VL-NEXT: vpblendvb %ymm8, %ymm3, %ymm2, %ymm2
; AVX512VL-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31]
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
-; AVX512VL-NEXT: vpmullw %ymm9, %ymm3, %ymm3
+; AVX512VL-NEXT: vpmullw %ymm3, %ymm9, %ymm3
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm0 = ymm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm0, %ymm0
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm0, %ymm0
+; AVX512VL-NEXT: vpmullw %ymm0, %ymm10, %ymm0
; AVX512VL-NEXT: vpsrlw $8, %ymm0, %ymm0
; AVX512VL-NEXT: vpackuswb %ymm3, %ymm0, %ymm0
; AVX512VL-NEXT: vpor %ymm0, %ymm2, %ymm0
diff --git a/llvm/test/CodeGen/X86/vector-fshr-256.ll b/llvm/test/CodeGen/X86/vector-fshr-256.ll
index 8898373bfe81..984588caf41a 100644
--- a/llvm/test/CodeGen/X86/vector-fshr-256.ll
+++ b/llvm/test/CodeGen/X86/vector-fshr-256.ll
@@ -231,8 +231,8 @@ define <8 x i32> @var_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %amt)
; AVX1-NEXT: vpmulld %xmm6, %xmm0, %xmm0
; AVX1-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm0
; AVX1-NEXT: vorps %ymm4, %ymm0, %ymm0
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm3, %xmm3
-; AVX1-NEXT: vpcmpeqd %xmm8, %xmm2, %xmm2
+; AVX1-NEXT: vpcmpeqd %xmm3, %xmm8, %xmm3
+; AVX1-NEXT: vpcmpeqd %xmm2, %xmm8, %xmm2
; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm2
; AVX1-NEXT: vblendvps %ymm2, %ymm1, %ymm0, %ymm0
; AVX1-NEXT: retq
@@ -429,7 +429,7 @@ define <16 x i16> @var_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i16> %
; AVX1-NEXT: vpackusdw %xmm7, %xmm4, %xmm4
; AVX1-NEXT: vpmullw %xmm4, %xmm0, %xmm0
; AVX1-NEXT: vinsertf128 $1, %xmm6, %ymm0, %ymm0
-; AVX1-NEXT: vorps %ymm8, %ymm0, %ymm0
+; AVX1-NEXT: vorps %ymm0, %ymm8, %ymm0
; AVX1-NEXT: vpxor %xmm4, %xmm4, %xmm4
; AVX1-NEXT: vpcmpeqw %xmm4, %xmm3, %xmm3
; AVX1-NEXT: vpcmpeqw %xmm4, %xmm2, %xmm2
@@ -610,7 +610,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm4
; AVX1-NEXT: vpsllw $4, %xmm4, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240]
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm6
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm6
; AVX1-NEXT: vandps {{.*}}(%rip), %ymm2, %ymm2
; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
@@ -626,7 +626,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vpaddb %xmm5, %xmm5, %xmm5
; AVX1-NEXT: vpblendvb %xmm5, %xmm6, %xmm4, %xmm4
; AVX1-NEXT: vpsllw $4, %xmm0, %xmm5
-; AVX1-NEXT: vpand %xmm8, %xmm5, %xmm5
+; AVX1-NEXT: vpand %xmm5, %xmm8, %xmm5
; AVX1-NEXT: vpsubb %xmm2, %xmm9, %xmm6
; AVX1-NEXT: vpsllw $5, %xmm6, %xmm6
; AVX1-NEXT: vpblendvb %xmm6, %xmm5, %xmm0, %xmm0
@@ -641,12 +641,12 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
; AVX1-NEXT: vpsrlw $4, %xmm4, %xmm5
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
-; AVX1-NEXT: vpand %xmm9, %xmm5, %xmm5
+; AVX1-NEXT: vpand %xmm5, %xmm9, %xmm5
; AVX1-NEXT: vpsllw $5, %xmm3, %xmm7
; AVX1-NEXT: vpblendvb %xmm7, %xmm5, %xmm4, %xmm4
; AVX1-NEXT: vpsrlw $2, %xmm4, %xmm5
; AVX1-NEXT: vmovdqa {{.*#+}} xmm10 = [63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63]
-; AVX1-NEXT: vpand %xmm10, %xmm5, %xmm5
+; AVX1-NEXT: vpand %xmm5, %xmm10, %xmm5
; AVX1-NEXT: vpaddb %xmm7, %xmm7, %xmm7
; AVX1-NEXT: vpblendvb %xmm7, %xmm5, %xmm4, %xmm4
; AVX1-NEXT: vpsrlw $1, %xmm4, %xmm5
@@ -655,11 +655,11 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
; AVX1-NEXT: vpaddb %xmm7, %xmm7, %xmm7
; AVX1-NEXT: vpblendvb %xmm7, %xmm5, %xmm4, %xmm4
; AVX1-NEXT: vpsrlw $4, %xmm1, %xmm5
-; AVX1-NEXT: vpand %xmm9, %xmm5, %xmm5
+; AVX1-NEXT: vpand %xmm5, %xmm9, %xmm5
; AVX1-NEXT: vpsllw $5, %xmm2, %xmm7
; AVX1-NEXT: vpblendvb %xmm7, %xmm5, %xmm1, %xmm5
; AVX1-NEXT: vpsrlw $2, %xmm5, %xmm0
-; AVX1-NEXT: vpand %xmm10, %xmm0, %xmm0
+; AVX1-NEXT: vpand %xmm0, %xmm10, %xmm0
; AVX1-NEXT: vpaddb %xmm7, %xmm7, %xmm7
; AVX1-NEXT: vpblendvb %xmm7, %xmm0, %xmm5, %xmm0
; AVX1-NEXT: vpsrlw $1, %xmm0, %xmm5
@@ -1477,7 +1477,7 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
; AVX1-NEXT: vpshufb %xmm3, %xmm6, %xmm6
; AVX1-NEXT: vpand %xmm6, %xmm0, %xmm0
; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm0
-; AVX1-NEXT: vorps %ymm9, %ymm0, %ymm0
+; AVX1-NEXT: vorps %ymm0, %ymm9, %ymm0
; AVX1-NEXT: vpcmpeqb %xmm3, %xmm5, %xmm4
; AVX1-NEXT: vpcmpeqb %xmm3, %xmm2, %xmm2
; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm2, %ymm2
diff --git a/llvm/test/CodeGen/X86/vector-fshr-512.ll b/llvm/test/CodeGen/X86/vector-fshr-512.ll
index ca559a6911a3..6df29e86ce35 100644
--- a/llvm/test/CodeGen/X86/vector-fshr-512.ll
+++ b/llvm/test/CodeGen/X86/vector-fshr-512.ll
@@ -309,19 +309,19 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %amt)
; AVX512F-NEXT: vpaddb %ymm5, %ymm5, %ymm5
; AVX512F-NEXT: vpblendvb %ymm5, %ymm6, %ymm4, %ymm4
; AVX512F-NEXT: vpsllw $4, %ymm0, %ymm5
-; AVX512F-NEXT: vpand %ymm12, %ymm5, %ymm5
+; AVX512F-NEXT: vpand %ymm5, %ymm12, %ymm5
; AVX512F-NEXT: vpsubb %ymm2, %ymm13, %ymm6
; AVX512F-NEXT: vpsllw $5, %ymm6, %ymm6
; AVX512F-NEXT: vpblendvb %ymm6, %ymm5, %ymm0, %ymm0
; AVX512F-NEXT: vpsllw $2, %ymm0, %ymm5
-; AVX512F-NEXT: vpand %ymm15, %ymm5, %ymm5
+; AVX512F-NEXT: vpand %ymm5, %ymm15, %ymm5
; AVX512F-NEXT: vpaddb %ymm6, %ymm6, %ymm6
; AVX512F-NEXT: vpblendvb %ymm6, %ymm5, %ymm0, %ymm0
; AVX512F-NEXT: vpaddb %ymm0, %ymm0, %ymm5
; AVX512F-NEXT: vpaddb %ymm6, %ymm6, %ymm6
; AVX512F-NEXT: vpblendvb %ymm6, %ymm5, %ymm0, %ymm0
; AVX512F-NEXT: vpor %ymm4, %ymm0, %ymm0
-; AVX512F-NEXT: vpcmpeqb %ymm10, %ymm2, %ymm2
+; AVX512F-NEXT: vpcmpeqb %ymm2, %ymm10, %ymm2
; AVX512F-NEXT: vpblendvb %ymm2, %ymm1, %ymm0, %ymm0
; AVX512F-NEXT: vinserti64x4 $1, %ymm3, %zmm0, %zmm0
; AVX512F-NEXT: retq
@@ -335,7 +335,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %amt)
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm7 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
; AVX512VL-NEXT: vpand %ymm7, %ymm6, %ymm6
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm8 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
-; AVX512VL-NEXT: vpand %ymm8, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm8, %ymm5
; AVX512VL-NEXT: vpsllw $5, %ymm5, %ymm9
; AVX512VL-NEXT: vpblendvb %ymm9, %ymm6, %ymm3, %ymm6
; AVX512VL-NEXT: vpsrlw $2, %ymm6, %ymm10
@@ -369,24 +369,24 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %amt)
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm3, %ymm4, %ymm3
; AVX512VL-NEXT: vpsrlw $4, %ymm1, %ymm4
; AVX512VL-NEXT: vpand %ymm7, %ymm4, %ymm4
-; AVX512VL-NEXT: vpand %ymm8, %ymm2, %ymm2
+; AVX512VL-NEXT: vpand %ymm2, %ymm8, %ymm2
; AVX512VL-NEXT: vpsllw $5, %ymm2, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm4, %ymm1, %ymm4
; AVX512VL-NEXT: vpsrlw $2, %ymm4, %ymm7
-; AVX512VL-NEXT: vpand %ymm11, %ymm7, %ymm7
+; AVX512VL-NEXT: vpand %ymm7, %ymm11, %ymm7
; AVX512VL-NEXT: vpaddb %ymm5, %ymm5, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm7, %ymm4, %ymm4
; AVX512VL-NEXT: vpsrlw $1, %ymm4, %ymm7
-; AVX512VL-NEXT: vpand %ymm12, %ymm7, %ymm7
+; AVX512VL-NEXT: vpand %ymm7, %ymm12, %ymm7
; AVX512VL-NEXT: vpaddb %ymm5, %ymm5, %ymm5
; AVX512VL-NEXT: vpblendvb %ymm5, %ymm7, %ymm4, %ymm4
; AVX512VL-NEXT: vpsllw $4, %ymm0, %ymm5
-; AVX512VL-NEXT: vpand %ymm10, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm10, %ymm5
; AVX512VL-NEXT: vpsubb %ymm2, %ymm13, %ymm7
; AVX512VL-NEXT: vpsllw $5, %ymm7, %ymm7
; AVX512VL-NEXT: vpblendvb %ymm7, %ymm5, %ymm0, %ymm0
; AVX512VL-NEXT: vpsllw $2, %ymm0, %ymm5
-; AVX512VL-NEXT: vpand %ymm15, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm15, %ymm5
; AVX512VL-NEXT: vpaddb %ymm7, %ymm7, %ymm7
; AVX512VL-NEXT: vpblendvb %ymm7, %ymm5, %ymm0, %ymm0
; AVX512VL-NEXT: vpaddb %ymm0, %ymm0, %ymm5
@@ -825,7 +825,7 @@ define <64 x i8> @splatvar_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %
; AVX512F-NEXT: vpand %ymm6, %ymm9, %ymm8
; AVX512F-NEXT: vpor %ymm10, %ymm8, %ymm8
; AVX512F-NEXT: vpxor %xmm9, %xmm9, %xmm9
-; AVX512F-NEXT: vpcmpeqb %ymm9, %ymm2, %ymm2
+; AVX512F-NEXT: vpcmpeqb %ymm2, %ymm9, %ymm2
; AVX512F-NEXT: vpblendvb %ymm2, %ymm4, %ymm8, %ymm4
; AVX512F-NEXT: vpsrlw %xmm5, %ymm1, %ymm5
; AVX512F-NEXT: vpand %ymm7, %ymm5, %ymm5
@@ -858,7 +858,7 @@ define <64 x i8> @splatvar_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y, <64 x i8> %
; AVX512VL-NEXT: vpand %ymm6, %ymm9, %ymm8
; AVX512VL-NEXT: vpor %ymm10, %ymm8, %ymm8
; AVX512VL-NEXT: vpxor %xmm9, %xmm9, %xmm9
-; AVX512VL-NEXT: vpcmpeqb %ymm9, %ymm2, %ymm2
+; AVX512VL-NEXT: vpcmpeqb %ymm2, %ymm9, %ymm2
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm4, %ymm8, %ymm4
; AVX512VL-NEXT: vpsrlw %xmm5, %ymm1, %ymm5
; AVX512VL-NEXT: vpand %ymm7, %ymm5, %ymm5
@@ -1160,7 +1160,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512F-NEXT: vpmullw %ymm13, %ymm12, %ymm12
; AVX512F-NEXT: vpsrlw $8, %ymm12, %ymm12
; AVX512F-NEXT: vpackuswb %ymm10, %ymm12, %ymm10
-; AVX512F-NEXT: vpor %ymm10, %ymm3, %ymm3
+; AVX512F-NEXT: vpor %ymm3, %ymm10, %ymm3
; AVX512F-NEXT: vpbroadcastq {{.*#+}} ymm10 = [18446744073709551360,18446744073709551360,18446744073709551360,18446744073709551360]
; AVX512F-NEXT: vpblendvb %ymm10, %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpsllw $4, %ymm0, %ymm3
@@ -1172,10 +1172,10 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512F-NEXT: vpaddb %ymm0, %ymm0, %ymm3
; AVX512F-NEXT: vpblendvb %ymm9, %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm1[8],ymm4[8],ymm1[9],ymm4[9],ymm1[10],ymm4[10],ymm1[11],ymm4[11],ymm1[12],ymm4[12],ymm1[13],ymm4[13],ymm1[14],ymm4[14],ymm1[15],ymm4[15],ymm1[24],ymm4[24],ymm1[25],ymm4[25],ymm1[26],ymm4[26],ymm1[27],ymm4[27],ymm1[28],ymm4[28],ymm1[29],ymm4[29],ymm1[30],ymm4[30],ymm1[31],ymm4[31]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm3, %ymm3
+; AVX512F-NEXT: vpmullw %ymm3, %ymm11, %ymm3
; AVX512F-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm4 = ymm1[0],ymm4[0],ymm1[1],ymm4[1],ymm1[2],ymm4[2],ymm1[3],ymm4[3],ymm1[4],ymm4[4],ymm1[5],ymm4[5],ymm1[6],ymm4[6],ymm1[7],ymm4[7],ymm1[16],ymm4[16],ymm1[17],ymm4[17],ymm1[18],ymm4[18],ymm1[19],ymm4[19],ymm1[20],ymm4[20],ymm1[21],ymm4[21],ymm1[22],ymm4[22],ymm1[23],ymm4[23]
-; AVX512F-NEXT: vpmullw %ymm13, %ymm4, %ymm4
+; AVX512F-NEXT: vpmullw %ymm4, %ymm13, %ymm4
; AVX512F-NEXT: vpsrlw $8, %ymm4, %ymm4
; AVX512F-NEXT: vpackuswb %ymm3, %ymm4, %ymm3
; AVX512F-NEXT: vpor %ymm3, %ymm0, %ymm0
@@ -1205,7 +1205,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512VL-NEXT: vpsrlw $8, %ymm4, %ymm4
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512VL-NEXT: # ymm10 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm4, %ymm4
+; AVX512VL-NEXT: vpmullw %ymm4, %ymm10, %ymm4
; AVX512VL-NEXT: vpsrlw $8, %ymm4, %ymm4
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm11 = ymm2[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm11, %ymm11
@@ -1227,11 +1227,11 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x, <64 x i8> %y) nounwind {
; AVX512VL-NEXT: vpblendvb %ymm9, %ymm3, %ymm0, %ymm0
; AVX512VL-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm1[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31]
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm3, %ymm3
+; AVX512VL-NEXT: vpmullw %ymm3, %ymm10, %ymm3
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm5 = ymm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
-; AVX512VL-NEXT: vpmullw %ymm12, %ymm5, %ymm5
+; AVX512VL-NEXT: vpmullw %ymm5, %ymm12, %ymm5
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vpackuswb %ymm3, %ymm5, %ymm3
; AVX512VL-NEXT: vpor %ymm3, %ymm0, %ymm0
diff --git a/llvm/test/CodeGen/X86/vector-fshr-rot-256.ll b/llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
index bf7c057965b3..7d6a5eef9ebc 100644
--- a/llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
+++ b/llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
@@ -392,7 +392,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %amt) nounwind {
; AVX1-NEXT: vpblendvb %xmm5, %xmm3, %xmm2, %xmm2
; AVX1-NEXT: vpsrlw $7, %xmm2, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX1-NEXT: vpand %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpaddb %xmm2, %xmm2, %xmm6
; AVX1-NEXT: vpor %xmm3, %xmm6, %xmm3
; AVX1-NEXT: vpaddb %xmm5, %xmm5, %xmm5
@@ -413,7 +413,7 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %amt) nounwind {
; AVX1-NEXT: vpaddb %xmm1, %xmm1, %xmm1
; AVX1-NEXT: vpblendvb %xmm1, %xmm3, %xmm0, %xmm0
; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm3
-; AVX1-NEXT: vpand %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpaddb %xmm0, %xmm0, %xmm4
; AVX1-NEXT: vpor %xmm3, %xmm4, %xmm3
; AVX1-NEXT: vpaddb %xmm1, %xmm1, %xmm1
@@ -1219,7 +1219,7 @@ define <32 x i8> @constant_funnnel_v32i8(<32 x i8> %x) nounwind {
; AVX1-NEXT: vpxor %xmm8, %xmm8, %xmm8
; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm1[8],xmm8[8],xmm1[9],xmm8[9],xmm1[10],xmm8[10],xmm1[11],xmm8[11],xmm1[12],xmm8[12],xmm1[13],xmm8[13],xmm1[14],xmm8[14],xmm1[15],xmm8[15]
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [256,2,4,8,16,32,64,128]
-; AVX1-NEXT: vpmullw %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpmullw %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpsrlw $8, %xmm3, %xmm3
; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
; AVX1-NEXT: vmovdqa {{.*#+}} xmm6 = [256,128,64,32,16,8,4,2]
@@ -1237,7 +1237,7 @@ define <32 x i8> @constant_funnnel_v32i8(<32 x i8> %x) nounwind {
; AVX1-NEXT: vpackuswb %xmm1, %xmm5, %xmm1
; AVX1-NEXT: vpor %xmm3, %xmm1, %xmm1
; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm0[8],xmm8[8],xmm0[9],xmm8[9],xmm0[10],xmm8[10],xmm0[11],xmm8[11],xmm0[12],xmm8[12],xmm0[13],xmm8[13],xmm0[14],xmm8[14],xmm0[15],xmm8[15]
-; AVX1-NEXT: vpmullw %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpmullw %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpsrlw $8, %xmm3, %xmm3
; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
; AVX1-NEXT: vpmullw %xmm6, %xmm5, %xmm6
diff --git a/llvm/test/CodeGen/X86/vector-fshr-rot-512.ll b/llvm/test/CodeGen/X86/vector-fshr-rot-512.ll
index 3838dfd4dd14..d8d300f66c59 100644
--- a/llvm/test/CodeGen/X86/vector-fshr-rot-512.ll
+++ b/llvm/test/CodeGen/X86/vector-fshr-rot-512.ll
@@ -146,7 +146,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %amt) nounwind {
; AVX512F-NEXT: vpblendvb %ymm2, %ymm4, %ymm3, %ymm3
; AVX512F-NEXT: vpsrlw $7, %ymm3, %ymm4
; AVX512F-NEXT: vmovdqa {{.*#+}} ymm9 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX512F-NEXT: vpand %ymm9, %ymm4, %ymm4
+; AVX512F-NEXT: vpand %ymm4, %ymm9, %ymm4
; AVX512F-NEXT: vpaddb %ymm3, %ymm3, %ymm10
; AVX512F-NEXT: vpor %ymm4, %ymm10, %ymm4
; AVX512F-NEXT: vpaddb %ymm2, %ymm2, %ymm2
@@ -163,12 +163,12 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %amt) nounwind {
; AVX512F-NEXT: vpsrlw $6, %ymm0, %ymm3
; AVX512F-NEXT: vpandn %ymm3, %ymm8, %ymm3
; AVX512F-NEXT: vpsllw $2, %ymm0, %ymm4
-; AVX512F-NEXT: vpand %ymm8, %ymm4, %ymm4
+; AVX512F-NEXT: vpand %ymm4, %ymm8, %ymm4
; AVX512F-NEXT: vpor %ymm3, %ymm4, %ymm3
; AVX512F-NEXT: vpaddb %ymm1, %ymm1, %ymm1
; AVX512F-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpsrlw $7, %ymm0, %ymm3
-; AVX512F-NEXT: vpand %ymm9, %ymm3, %ymm3
+; AVX512F-NEXT: vpand %ymm3, %ymm9, %ymm3
; AVX512F-NEXT: vpaddb %ymm0, %ymm0, %ymm4
; AVX512F-NEXT: vpor %ymm3, %ymm4, %ymm3
; AVX512F-NEXT: vpaddb %ymm1, %ymm1, %ymm1
@@ -198,7 +198,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %amt) nounwind {
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm8, %ymm3, %ymm3
; AVX512VL-NEXT: vpsrlw $7, %ymm3, %ymm5
; AVX512VL-NEXT: vmovdqa {{.*#+}} ymm8 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX512VL-NEXT: vpand %ymm8, %ymm5, %ymm5
+; AVX512VL-NEXT: vpand %ymm5, %ymm8, %ymm5
; AVX512VL-NEXT: vpaddb %ymm3, %ymm3, %ymm10
; AVX512VL-NEXT: vpor %ymm5, %ymm10, %ymm5
; AVX512VL-NEXT: vpaddb %ymm2, %ymm2, %ymm2
@@ -216,7 +216,7 @@ define <64 x i8> @var_funnnel_v64i8(<64 x i8> %x, <64 x i8> %amt) nounwind {
; AVX512VL-NEXT: vpaddb %ymm1, %ymm1, %ymm1
; AVX512VL-NEXT: vpblendvb %ymm1, %ymm4, %ymm0, %ymm0
; AVX512VL-NEXT: vpsrlw $7, %ymm0, %ymm3
-; AVX512VL-NEXT: vpand %ymm8, %ymm3, %ymm3
+; AVX512VL-NEXT: vpand %ymm3, %ymm8, %ymm3
; AVX512VL-NEXT: vpaddb %ymm0, %ymm0, %ymm4
; AVX512VL-NEXT: vpor %ymm3, %ymm4, %ymm3
; AVX512VL-NEXT: vpaddb %ymm1, %ymm1, %ymm1
@@ -618,7 +618,7 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[1],ymm5[1],ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[4],ymm5[4],ymm1[5],ymm5[5],ymm1[6],ymm5[6],ymm1[7],ymm5[7],ymm1[16],ymm5[16],ymm1[17],ymm5[17],ymm1[18],ymm5[18],ymm1[19],ymm5[19],ymm1[20],ymm5[20],ymm1[21],ymm5[21],ymm1[22],ymm5[22],ymm1[23],ymm5[23]
; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [256,128,64,32,16,8,4,2,256,128,64,32,16,8,4,2]
; AVX512F-NEXT: # ymm11 = mem[0,1,0,1]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm1, %ymm1
+; AVX512F-NEXT: vpmullw %ymm1, %ymm11, %ymm1
; AVX512F-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512F-NEXT: vpackuswb %ymm9, %ymm1, %ymm1
; AVX512F-NEXT: vpor %ymm1, %ymm2, %ymm1
@@ -631,10 +631,10 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512F-NEXT: vpaddb %ymm2, %ymm2, %ymm3
; AVX512F-NEXT: vpblendvb %ymm8, %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8],ymm5[8],ymm0[9],ymm5[9],ymm0[10],ymm5[10],ymm0[11],ymm5[11],ymm0[12],ymm5[12],ymm0[13],ymm5[13],ymm0[14],ymm5[14],ymm0[15],ymm5[15],ymm0[24],ymm5[24],ymm0[25],ymm5[25],ymm0[26],ymm5[26],ymm0[27],ymm5[27],ymm0[28],ymm5[28],ymm0[29],ymm5[29],ymm0[30],ymm5[30],ymm0[31],ymm5[31]
-; AVX512F-NEXT: vpmullw %ymm10, %ymm3, %ymm3
+; AVX512F-NEXT: vpmullw %ymm3, %ymm10, %ymm3
; AVX512F-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[2],ymm5[2],ymm0[3],ymm5[3],ymm0[4],ymm5[4],ymm0[5],ymm5[5],ymm0[6],ymm5[6],ymm0[7],ymm5[7],ymm0[16],ymm5[16],ymm0[17],ymm5[17],ymm0[18],ymm5[18],ymm0[19],ymm5[19],ymm0[20],ymm5[20],ymm0[21],ymm5[21],ymm0[22],ymm5[22],ymm0[23],ymm5[23]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm0, %ymm0
+; AVX512F-NEXT: vpmullw %ymm0, %ymm11, %ymm0
; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
; AVX512F-NEXT: vpackuswb %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpor %ymm0, %ymm2, %ymm0
@@ -662,13 +662,13 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512VL-NEXT: # ymm9 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm9, %ymm5, %ymm5
+; AVX512VL-NEXT: vpmullw %ymm5, %ymm9, %ymm5
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [256,128,64,32,16,8,4,2,256,128,64,32,16,8,4,2]
; AVX512VL-NEXT: # ymm10 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm1, %ymm1
+; AVX512VL-NEXT: vpmullw %ymm1, %ymm10, %ymm1
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpor %ymm1, %ymm2, %ymm1
@@ -682,11 +682,11 @@ define <64 x i8> @constant_funnnel_v64i8(<64 x i8> %x) nounwind {
; AVX512VL-NEXT: vpblendvb %ymm8, %ymm3, %ymm2, %ymm2
; AVX512VL-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31]
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
-; AVX512VL-NEXT: vpmullw %ymm9, %ymm3, %ymm3
+; AVX512VL-NEXT: vpmullw %ymm3, %ymm9, %ymm3
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm0 = ymm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm0, %ymm0
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm0, %ymm0
+; AVX512VL-NEXT: vpmullw %ymm0, %ymm10, %ymm0
; AVX512VL-NEXT: vpsrlw $8, %ymm0, %ymm0
; AVX512VL-NEXT: vpackuswb %ymm3, %ymm0, %ymm0
; AVX512VL-NEXT: vpor %ymm0, %ymm2, %ymm0
diff --git a/llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll b/llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll
index eda349005cda..298028fd81c7 100644
--- a/llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll
+++ b/llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll
@@ -582,7 +582,7 @@ define <32 x i8> @test_rem7_32i8(<32 x i8> %a) nounwind {
; AVX1-NEXT: vpaddb %xmm1, %xmm2, %xmm2
; AVX1-NEXT: vpsrlw $7, %xmm2, %xmm4
; AVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX1-NEXT: vpand %xmm8, %xmm4, %xmm4
+; AVX1-NEXT: vpand %xmm4, %xmm8, %xmm4
; AVX1-NEXT: vpsrlw $2, %xmm2, %xmm2
; AVX1-NEXT: vmovdqa {{.*#+}} xmm6 = [63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63]
; AVX1-NEXT: vpand %xmm6, %xmm2, %xmm2
@@ -605,7 +605,7 @@ define <32 x i8> @test_rem7_32i8(<32 x i8> %a) nounwind {
; AVX1-NEXT: vpackuswb %xmm3, %xmm2, %xmm2
; AVX1-NEXT: vpaddb %xmm0, %xmm2, %xmm2
; AVX1-NEXT: vpsrlw $7, %xmm2, %xmm3
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm3
; AVX1-NEXT: vpsrlw $2, %xmm2, %xmm2
; AVX1-NEXT: vpand %xmm6, %xmm2, %xmm2
; AVX1-NEXT: vpxor %xmm7, %xmm2, %xmm2
diff --git a/llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll b/llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
index 336311e1b79f..05422fa48766 100644
--- a/llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
+++ b/llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
@@ -499,7 +499,7 @@ define <64 x i8> @test_rem7_64i8(<64 x i8> %a) nounwind {
; AVX512F-NEXT: vpsubb %ymm7, %ymm2, %ymm2
; AVX512F-NEXT: vpsllw $3, %ymm2, %ymm4
; AVX512F-NEXT: vmovdqa {{.*#+}} ymm8 = [248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248]
-; AVX512F-NEXT: vpand %ymm8, %ymm4, %ymm4
+; AVX512F-NEXT: vpand %ymm4, %ymm8, %ymm4
; AVX512F-NEXT: vpsubb %ymm4, %ymm2, %ymm2
; AVX512F-NEXT: vpaddb %ymm2, %ymm1, %ymm1
; AVX512F-NEXT: vextracti128 $1, %ymm0, %xmm2
@@ -520,7 +520,7 @@ define <64 x i8> @test_rem7_64i8(<64 x i8> %a) nounwind {
; AVX512F-NEXT: vpaddb %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpsubb %ymm7, %ymm2, %ymm2
; AVX512F-NEXT: vpsllw $3, %ymm2, %ymm3
-; AVX512F-NEXT: vpand %ymm8, %ymm3, %ymm3
+; AVX512F-NEXT: vpand %ymm3, %ymm8, %ymm3
; AVX512F-NEXT: vpsubb %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpaddb %ymm2, %ymm0, %ymm0
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
diff --git a/llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll b/llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll
index 497c09943b71..c750dcb77cab 100644
--- a/llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll
+++ b/llvm/test/CodeGen/X86/vector-idiv-udiv-512.ll
@@ -496,7 +496,7 @@ define <64 x i8> @test_rem7_64i8(<64 x i8> %a) nounwind {
; AVX512F-NEXT: vpand %ymm5, %ymm3, %ymm3
; AVX512F-NEXT: vpsllw $3, %ymm3, %ymm7
; AVX512F-NEXT: vmovdqa {{.*#+}} ymm8 = [248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248]
-; AVX512F-NEXT: vpand %ymm8, %ymm7, %ymm7
+; AVX512F-NEXT: vpand %ymm7, %ymm8, %ymm7
; AVX512F-NEXT: vpsubb %ymm7, %ymm3, %ymm3
; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
; AVX512F-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8],ymm2[8],ymm0[9],ymm2[9],ymm0[10],ymm2[10],ymm0[11],ymm2[11],ymm0[12],ymm2[12],ymm0[13],ymm2[13],ymm0[14],ymm2[14],ymm0[15],ymm2[15],ymm0[24],ymm2[24],ymm0[25],ymm2[25],ymm0[26],ymm2[26],ymm0[27],ymm2[27],ymm0[28],ymm2[28],ymm0[29],ymm2[29],ymm0[30],ymm2[30],ymm0[31],ymm2[31]
@@ -513,7 +513,7 @@ define <64 x i8> @test_rem7_64i8(<64 x i8> %a) nounwind {
; AVX512F-NEXT: vpsrlw $2, %ymm2, %ymm2
; AVX512F-NEXT: vpand %ymm5, %ymm2, %ymm2
; AVX512F-NEXT: vpsllw $3, %ymm2, %ymm3
-; AVX512F-NEXT: vpand %ymm8, %ymm3, %ymm3
+; AVX512F-NEXT: vpand %ymm3, %ymm8, %ymm3
; AVX512F-NEXT: vpsubb %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpaddb %ymm2, %ymm0, %ymm0
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
diff --git a/llvm/test/CodeGen/X86/vector-rotate-256.ll b/llvm/test/CodeGen/X86/vector-rotate-256.ll
index df76a7738f8e..33f14d7e2b6e 100644
--- a/llvm/test/CodeGen/X86/vector-rotate-256.ll
+++ b/llvm/test/CodeGen/X86/vector-rotate-256.ll
@@ -354,7 +354,7 @@ define <32 x i8> @var_rotate_v32i8(<32 x i8> %a, <32 x i8> %b) nounwind {
; AVX1-NEXT: vpblendvb %xmm5, %xmm3, %xmm2, %xmm2
; AVX1-NEXT: vpsrlw $7, %xmm2, %xmm3
; AVX1-NEXT: vmovdqa {{.*#+}} xmm8 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm3
; AVX1-NEXT: vpaddb %xmm2, %xmm2, %xmm7
; AVX1-NEXT: vpor %xmm3, %xmm7, %xmm3
; AVX1-NEXT: vpaddb %xmm5, %xmm5, %xmm5
@@ -374,7 +374,7 @@ define <32 x i8> @var_rotate_v32i8(<32 x i8> %a, <32 x i8> %b) nounwind {
; AVX1-NEXT: vpaddb %xmm1, %xmm1, %xmm1
; AVX1-NEXT: vpblendvb %xmm1, %xmm3, %xmm0, %xmm0
; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm3
-; AVX1-NEXT: vpand %xmm8, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm8, %xmm3
; AVX1-NEXT: vpaddb %xmm0, %xmm0, %xmm4
; AVX1-NEXT: vpor %xmm3, %xmm4, %xmm3
; AVX1-NEXT: vpaddb %xmm1, %xmm1, %xmm1
@@ -1134,7 +1134,7 @@ define <32 x i8> @constant_rotate_v32i8(<32 x i8> %a) nounwind {
; AVX1-NEXT: vpxor %xmm8, %xmm8, %xmm8
; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm1[8],xmm8[8],xmm1[9],xmm8[9],xmm1[10],xmm8[10],xmm1[11],xmm8[11],xmm1[12],xmm8[12],xmm1[13],xmm8[13],xmm1[14],xmm8[14],xmm1[15],xmm8[15]
; AVX1-NEXT: vmovdqa {{.*#+}} xmm9 = [256,128,64,32,16,8,4,2]
-; AVX1-NEXT: vpmullw %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpmullw %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpsrlw $8, %xmm3, %xmm3
; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
; AVX1-NEXT: vmovdqa {{.*#+}} xmm6 = [256,2,4,8,16,32,64,128]
@@ -1152,7 +1152,7 @@ define <32 x i8> @constant_rotate_v32i8(<32 x i8> %a) nounwind {
; AVX1-NEXT: vpackuswb %xmm1, %xmm5, %xmm1
; AVX1-NEXT: vpor %xmm3, %xmm1, %xmm1
; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm0[8],xmm8[8],xmm0[9],xmm8[9],xmm0[10],xmm8[10],xmm0[11],xmm8[11],xmm0[12],xmm8[12],xmm0[13],xmm8[13],xmm0[14],xmm8[14],xmm0[15],xmm8[15]
-; AVX1-NEXT: vpmullw %xmm9, %xmm3, %xmm3
+; AVX1-NEXT: vpmullw %xmm3, %xmm9, %xmm3
; AVX1-NEXT: vpsrlw $8, %xmm3, %xmm3
; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm5 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
; AVX1-NEXT: vpmullw %xmm6, %xmm5, %xmm6
diff --git a/llvm/test/CodeGen/X86/vector-rotate-512.ll b/llvm/test/CodeGen/X86/vector-rotate-512.ll
index d92d73a220d8..7a210264f085 100644
--- a/llvm/test/CodeGen/X86/vector-rotate-512.ll
+++ b/llvm/test/CodeGen/X86/vector-rotate-512.ll
@@ -579,7 +579,7 @@ define <64 x i8> @constant_rotate_v64i8(<64 x i8> %a) nounwind {
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[1],ymm5[1],ymm1[2],ymm5[2],ymm1[3],ymm5[3],ymm1[4],ymm5[4],ymm1[5],ymm5[5],ymm1[6],ymm5[6],ymm1[7],ymm5[7],ymm1[16],ymm5[16],ymm1[17],ymm5[17],ymm1[18],ymm5[18],ymm1[19],ymm5[19],ymm1[20],ymm5[20],ymm1[21],ymm5[21],ymm1[22],ymm5[22],ymm1[23],ymm5[23]
; AVX512F-NEXT: vbroadcasti128 {{.*#+}} ymm11 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512F-NEXT: # ymm11 = mem[0,1,0,1]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm1, %ymm1
+; AVX512F-NEXT: vpmullw %ymm1, %ymm11, %ymm1
; AVX512F-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512F-NEXT: vpackuswb %ymm9, %ymm1, %ymm1
; AVX512F-NEXT: vpor %ymm1, %ymm2, %ymm1
@@ -592,10 +592,10 @@ define <64 x i8> @constant_rotate_v64i8(<64 x i8> %a) nounwind {
; AVX512F-NEXT: vpaddb %ymm2, %ymm2, %ymm3
; AVX512F-NEXT: vpblendvb %ymm8, %ymm3, %ymm2, %ymm2
; AVX512F-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8],ymm5[8],ymm0[9],ymm5[9],ymm0[10],ymm5[10],ymm0[11],ymm5[11],ymm0[12],ymm5[12],ymm0[13],ymm5[13],ymm0[14],ymm5[14],ymm0[15],ymm5[15],ymm0[24],ymm5[24],ymm0[25],ymm5[25],ymm0[26],ymm5[26],ymm0[27],ymm5[27],ymm0[28],ymm5[28],ymm0[29],ymm5[29],ymm0[30],ymm5[30],ymm0[31],ymm5[31]
-; AVX512F-NEXT: vpmullw %ymm10, %ymm3, %ymm3
+; AVX512F-NEXT: vpmullw %ymm3, %ymm10, %ymm3
; AVX512F-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512F-NEXT: vpunpcklbw {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[1],ymm5[1],ymm0[2],ymm5[2],ymm0[3],ymm5[3],ymm0[4],ymm5[4],ymm0[5],ymm5[5],ymm0[6],ymm5[6],ymm0[7],ymm5[7],ymm0[16],ymm5[16],ymm0[17],ymm5[17],ymm0[18],ymm5[18],ymm0[19],ymm5[19],ymm0[20],ymm5[20],ymm0[21],ymm5[21],ymm0[22],ymm5[22],ymm0[23],ymm5[23]
-; AVX512F-NEXT: vpmullw %ymm11, %ymm0, %ymm0
+; AVX512F-NEXT: vpmullw %ymm0, %ymm11, %ymm0
; AVX512F-NEXT: vpsrlw $8, %ymm0, %ymm0
; AVX512F-NEXT: vpackuswb %ymm3, %ymm0, %ymm0
; AVX512F-NEXT: vpor %ymm0, %ymm2, %ymm0
@@ -623,13 +623,13 @@ define <64 x i8> @constant_rotate_v64i8(<64 x i8> %a) nounwind {
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [256,128,64,32,16,8,4,2,256,128,64,32,16,8,4,2]
; AVX512VL-NEXT: # ymm9 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm9, %ymm5, %ymm5
+; AVX512VL-NEXT: vpmullw %ymm5, %ymm9, %ymm5
; AVX512VL-NEXT: vpsrlw $8, %ymm5, %ymm5
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vbroadcasti128 {{.*#+}} ymm10 = [256,2,4,8,16,32,64,128,256,2,4,8,16,32,64,128]
; AVX512VL-NEXT: # ymm10 = mem[0,1,0,1]
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm1, %ymm1
+; AVX512VL-NEXT: vpmullw %ymm1, %ymm10, %ymm1
; AVX512VL-NEXT: vpsrlw $8, %ymm1, %ymm1
; AVX512VL-NEXT: vpackuswb %ymm5, %ymm1, %ymm1
; AVX512VL-NEXT: vpor %ymm1, %ymm2, %ymm1
@@ -643,11 +643,11 @@ define <64 x i8> @constant_rotate_v64i8(<64 x i8> %a) nounwind {
; AVX512VL-NEXT: vpblendvb %ymm8, %ymm3, %ymm2, %ymm2
; AVX512VL-NEXT: vpunpckhbw {{.*#+}} ymm3 = ymm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31]
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
-; AVX512VL-NEXT: vpmullw %ymm9, %ymm3, %ymm3
+; AVX512VL-NEXT: vpmullw %ymm3, %ymm9, %ymm3
; AVX512VL-NEXT: vpsrlw $8, %ymm3, %ymm3
; AVX512VL-NEXT: vpunpcklbw {{.*#+}} ymm0 = ymm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
; AVX512VL-NEXT: vpsrlw $8, %ymm0, %ymm0
-; AVX512VL-NEXT: vpmullw %ymm10, %ymm0, %ymm0
+; AVX512VL-NEXT: vpmullw %ymm0, %ymm10, %ymm0
; AVX512VL-NEXT: vpsrlw $8, %ymm0, %ymm0
; AVX512VL-NEXT: vpackuswb %ymm3, %ymm0, %ymm0
; AVX512VL-NEXT: vpor %ymm0, %ymm2, %ymm0
diff --git a/llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll b/llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll
index 4fc1f6023b87..b69b35e73cc9 100644
--- a/llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll
+++ b/llvm/test/CodeGen/X86/vector-shift-by-select-loop.ll
@@ -179,15 +179,15 @@ define void @vector_variable_shift_left_loop(i32* nocapture %arr, i8* nocapture
; AVX1-NEXT: vmovq {{.*#+}} xmm4 = mem[0],zero
; AVX1-NEXT: vmovq {{.*#+}} xmm5 = mem[0],zero
; AVX1-NEXT: vmovq {{.*#+}} xmm6 = mem[0],zero
-; AVX1-NEXT: vpcmpeqb %xmm11, %xmm3, %xmm3
+; AVX1-NEXT: vpcmpeqb %xmm3, %xmm11, %xmm3
; AVX1-NEXT: vpmovsxbd %xmm3, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,1,2,3]
; AVX1-NEXT: vpmovsxbd %xmm3, %xmm3
-; AVX1-NEXT: vpcmpeqb %xmm11, %xmm4, %xmm4
+; AVX1-NEXT: vpcmpeqb %xmm4, %xmm11, %xmm4
; AVX1-NEXT: vpmovsxbd %xmm4, %xmm8
; AVX1-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,1,2,3]
; AVX1-NEXT: vpmovsxbd %xmm4, %xmm4
-; AVX1-NEXT: vpcmpeqb %xmm11, %xmm5, %xmm5
+; AVX1-NEXT: vpcmpeqb %xmm5, %xmm11, %xmm5
; AVX1-NEXT: vmovdqu (%rdi,%rcx,4), %xmm9
; AVX1-NEXT: vpslld %xmm2, %xmm9, %xmm10
; AVX1-NEXT: vpslld %xmm1, %xmm9, %xmm0
@@ -195,7 +195,7 @@ define void @vector_variable_shift_left_loop(i32* nocapture %arr, i8* nocapture
; AVX1-NEXT: vpmovsxbd %xmm5, %xmm7
; AVX1-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,1,2,3]
; AVX1-NEXT: vpmovsxbd %xmm5, %xmm5
-; AVX1-NEXT: vpcmpeqb %xmm11, %xmm6, %xmm6
+; AVX1-NEXT: vpcmpeqb %xmm6, %xmm11, %xmm6
; AVX1-NEXT: vmovdqu 16(%rdi,%rcx,4), %xmm0
; AVX1-NEXT: vpslld %xmm2, %xmm0, %xmm2
; AVX1-NEXT: vpslld %xmm1, %xmm0, %xmm0
diff --git a/llvm/test/CodeGen/X86/vector-trunc-math.ll b/llvm/test/CodeGen/X86/vector-trunc-math.ll
index b91b2592f462..38cd2a3ae968 100644
--- a/llvm/test/CodeGen/X86/vector-trunc-math.ll
+++ b/llvm/test/CodeGen/X86/vector-trunc-math.ll
@@ -2983,20 +2983,20 @@ define <16 x i8> @trunc_and_v16i64_v16i8(<16 x i64> %a0, <16 x i64> %a1) nounwin
; AVX1-LABEL: trunc_and_v16i64_v16i8:
; AVX1: # %bb.0:
; AVX1-NEXT: vmovaps {{.*#+}} ymm8 = [255,255,255,255]
-; AVX1-NEXT: vandps %ymm8, %ymm7, %ymm7
+; AVX1-NEXT: vandps %ymm7, %ymm8, %ymm7
; AVX1-NEXT: vandps %ymm7, %ymm3, %ymm3
; AVX1-NEXT: vextractf128 $1, %ymm3, %xmm7
; AVX1-NEXT: vpackusdw %xmm7, %xmm3, %xmm3
-; AVX1-NEXT: vandps %ymm8, %ymm6, %ymm6
+; AVX1-NEXT: vandps %ymm6, %ymm8, %ymm6
; AVX1-NEXT: vandps %ymm6, %ymm2, %ymm2
; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm6
; AVX1-NEXT: vpackusdw %xmm6, %xmm2, %xmm2
; AVX1-NEXT: vpackusdw %xmm3, %xmm2, %xmm2
-; AVX1-NEXT: vandps %ymm8, %ymm5, %ymm3
+; AVX1-NEXT: vandps %ymm5, %ymm8, %ymm3
; AVX1-NEXT: vandps %ymm3, %ymm1, %ymm1
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm3
; AVX1-NEXT: vpackusdw %xmm3, %xmm1, %xmm1
-; AVX1-NEXT: vandps %ymm8, %ymm4, %ymm3
+; AVX1-NEXT: vandps %ymm4, %ymm8, %ymm3
; AVX1-NEXT: vandps %ymm3, %ymm0, %ymm0
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
; AVX1-NEXT: vpackusdw %xmm3, %xmm0, %xmm0
diff --git a/llvm/test/CodeGen/X86/vector-trunc-packus.ll b/llvm/test/CodeGen/X86/vector-trunc-packus.ll
index d382e0db3d33..80ce22ca93a7 100644
--- a/llvm/test/CodeGen/X86/vector-trunc-packus.ll
+++ b/llvm/test/CodeGen/X86/vector-trunc-packus.ll
@@ -5056,9 +5056,9 @@ define <16 x i8> @trunc_packus_v16i64_v16i8(<16 x i64>* %p0) "min-legal-vector-w
; AVX1-NEXT: vpand %xmm6, %xmm3, %xmm3
; AVX1-NEXT: vpackusdw %xmm0, %xmm3, %xmm0
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm11, %xmm3
-; AVX1-NEXT: vpand %xmm11, %xmm3, %xmm3
+; AVX1-NEXT: vpand %xmm3, %xmm11, %xmm3
; AVX1-NEXT: vpcmpgtq %xmm2, %xmm10, %xmm2
-; AVX1-NEXT: vpand %xmm10, %xmm2, %xmm2
+; AVX1-NEXT: vpand %xmm2, %xmm10, %xmm2
; AVX1-NEXT: vpackusdw %xmm3, %xmm2, %xmm2
; AVX1-NEXT: vpackusdw %xmm0, %xmm2, %xmm0
; AVX1-NEXT: vpackuswb %xmm1, %xmm0, %xmm0
diff --git a/llvm/test/CodeGen/X86/x86-interleaved-access.ll b/llvm/test/CodeGen/X86/x86-interleaved-access.ll
index d9f6d48df6fc..fcdebfa68a5e 100644
--- a/llvm/test/CodeGen/X86/x86-interleaved-access.ll
+++ b/llvm/test/CodeGen/X86/x86-interleaved-access.ll
@@ -1412,8 +1412,8 @@ define <64 x i8> @interleaved_load_vf64_i8_stride3(<192 x i8>* %ptr){
; AVX1-NEXT: vorps %ymm10, %ymm14, %ymm10
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm14
; AVX1-NEXT: vandnps %ymm14, %ymm12, %ymm14
-; AVX1-NEXT: vandps %ymm12, %ymm1, %ymm1
-; AVX1-NEXT: vorps %ymm14, %ymm1, %ymm1
+; AVX1-NEXT: vandps %ymm1, %ymm12, %ymm1
+; AVX1-NEXT: vorps %ymm1, %ymm14, %ymm1
; AVX1-NEXT: vpalignr {{.*#+}} xmm4 = xmm13[11,12,13,14,15],xmm4[0,1,2,3,4,5,6,7,8,9,10]
; AVX1-NEXT: vpalignr {{.*#+}} xmm3 = xmm3[11,12,13,14,15],xmm13[0,1,2,3,4,5,6,7,8,9,10]
; AVX1-NEXT: vpalignr {{.*#+}} xmm12 = xmm15[11,12,13,14,15],xmm7[0,1,2,3,4,5,6,7,8,9,10]
@@ -1434,7 +1434,7 @@ define <64 x i8> @interleaved_load_vf64_i8_stride3(<192 x i8>* %ptr){
; AVX1-NEXT: vpalignr {{.*#+}} xmm4 = xmm7[10,11,12,13,14,15,0,1,2,3,4,5,6,7,8,9]
; AVX1-NEXT: vpaddb %xmm3, %xmm4, %xmm3
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm3, %ymm0
-; AVX1-NEXT: vpaddb %xmm9, %xmm1, %xmm1
+; AVX1-NEXT: vpaddb %xmm1, %xmm9, %xmm1
; AVX1-NEXT: vpalignr {{.*#+}} xmm3 = xmm6[10,11,12,13,14,15,0,1,2,3,4,5,6,7,8,9]
; AVX1-NEXT: vpaddb %xmm1, %xmm3, %xmm1
; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1
More information about the llvm-commits
mailing list