[llvm] [WIP][X86] lowerBuildVectorAsBroadcast - don't convert constant vectors to broadcasts on AVX512VL targets (PR #73509)

via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 27 04:39:27 PST 2023


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff a9e3d232a520a17f098d4dc872c9591c565e7d36 883e87fae5de15ac117eec69d061ef9623908573 -- llvm/lib/Target/X86/X86FixupVectorConstants.cpp llvm/lib/Target/X86/X86ISelLowering.cpp llvm/lib/Target/X86/X86InstrFoldTables.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Target/X86/X86InstrFoldTables.cpp b/llvm/lib/Target/X86/X86InstrFoldTables.cpp
index 6b738bf893..c5df57aa98 100644
--- a/llvm/lib/Target/X86/X86InstrFoldTables.cpp
+++ b/llvm/lib/Target/X86/X86InstrFoldTables.cpp
@@ -24,402 +24,402 @@ using namespace llvm;
 // makes sorting these tables a simple matter of alphabetizing the table.
 #include "X86GenFoldTables.inc"
 static const X86MemoryFoldTableEntry BroadcastFoldTable2[] = {
-  { X86::VADDPDZ128rr,   X86::VADDPDZ128rmb,   TB_BCAST_SD },
-  { X86::VADDPDZ256rr,   X86::VADDPDZ256rmb,   TB_BCAST_SD },
-  { X86::VADDPDZrr,      X86::VADDPDZrmb,      TB_BCAST_SD },
-  { X86::VADDPSZ128rr,   X86::VADDPSZ128rmb,   TB_BCAST_SS },
-  { X86::VADDPSZ256rr,   X86::VADDPSZ256rmb,   TB_BCAST_SS },
-  { X86::VADDPSZrr,      X86::VADDPSZrmb,      TB_BCAST_SS },
-  { X86::VANDNPDZ128rr,  X86::VANDNPDZ128rmb,  TB_BCAST_SD },
-  { X86::VANDNPDZ256rr,  X86::VANDNPDZ256rmb,  TB_BCAST_SD },
-  { X86::VANDNPDZrr,     X86::VANDNPDZrmb,     TB_BCAST_SD },
-  { X86::VANDNPSZ128rr,  X86::VANDNPSZ128rmb,  TB_BCAST_SS },
-  { X86::VANDNPSZ256rr,  X86::VANDNPSZ256rmb,  TB_BCAST_SS },
-  { X86::VANDNPSZrr,     X86::VANDNPSZrmb,     TB_BCAST_SS },
-  { X86::VANDPDZ128rr,   X86::VANDPDZ128rmb,   TB_BCAST_SD },
-  { X86::VANDPDZ256rr,   X86::VANDPDZ256rmb,   TB_BCAST_SD },
-  { X86::VANDPDZrr,      X86::VANDPDZrmb,      TB_BCAST_SD },
-  { X86::VANDPSZ128rr,   X86::VANDPSZ128rmb,   TB_BCAST_SS },
-  { X86::VANDPSZ256rr,   X86::VANDPSZ256rmb,   TB_BCAST_SS },
-  { X86::VANDPSZrr,      X86::VANDPSZrmb,      TB_BCAST_SS },
-  { X86::VCMPPDZ128rri,  X86::VCMPPDZ128rmbi,  TB_BCAST_SD },
-  { X86::VCMPPDZ256rri,  X86::VCMPPDZ256rmbi,  TB_BCAST_SD },
-  { X86::VCMPPDZrri,     X86::VCMPPDZrmbi,     TB_BCAST_SD },
-  { X86::VCMPPSZ128rri,  X86::VCMPPSZ128rmbi,  TB_BCAST_SS },
-  { X86::VCMPPSZ256rri,  X86::VCMPPSZ256rmbi,  TB_BCAST_SS },
-  { X86::VCMPPSZrri,     X86::VCMPPSZrmbi,     TB_BCAST_SS },
-  { X86::VDIVPDZ128rr,   X86::VDIVPDZ128rmb,   TB_BCAST_SD },
-  { X86::VDIVPDZ256rr,   X86::VDIVPDZ256rmb,   TB_BCAST_SD },
-  { X86::VDIVPDZrr,      X86::VDIVPDZrmb,      TB_BCAST_SD },
-  { X86::VDIVPSZ128rr,   X86::VDIVPSZ128rmb,   TB_BCAST_SS },
-  { X86::VDIVPSZ256rr,   X86::VDIVPSZ256rmb,   TB_BCAST_SS },
-  { X86::VDIVPSZrr,      X86::VDIVPSZrmb,      TB_BCAST_SS },
-  { X86::VMAXCPDZ128rr,  X86::VMAXCPDZ128rmb,  TB_BCAST_SD },
-  { X86::VMAXCPDZ256rr,  X86::VMAXCPDZ256rmb,  TB_BCAST_SD },
-  { X86::VMAXCPDZrr,     X86::VMAXCPDZrmb,     TB_BCAST_SD },
-  { X86::VMAXCPSZ128rr,  X86::VMAXCPSZ128rmb,  TB_BCAST_SS },
-  { X86::VMAXCPSZ256rr,  X86::VMAXCPSZ256rmb,  TB_BCAST_SS },
-  { X86::VMAXCPSZrr,     X86::VMAXCPSZrmb,     TB_BCAST_SS },
-  { X86::VMAXPDZ128rr,   X86::VMAXPDZ128rmb,   TB_BCAST_SD },
-  { X86::VMAXPDZ256rr,   X86::VMAXPDZ256rmb,   TB_BCAST_SD },
-  { X86::VMAXPDZrr,      X86::VMAXPDZrmb,      TB_BCAST_SD },
-  { X86::VMAXPSZ128rr,   X86::VMAXPSZ128rmb,   TB_BCAST_SS },
-  { X86::VMAXPSZ256rr,   X86::VMAXPSZ256rmb,   TB_BCAST_SS },
-  { X86::VMAXPSZrr,      X86::VMAXPSZrmb,      TB_BCAST_SS },
-  { X86::VMINCPDZ128rr,  X86::VMINCPDZ128rmb,  TB_BCAST_SD },
-  { X86::VMINCPDZ256rr,  X86::VMINCPDZ256rmb,  TB_BCAST_SD },
-  { X86::VMINCPDZrr,     X86::VMINCPDZrmb,     TB_BCAST_SD },
-  { X86::VMINCPSZ128rr,  X86::VMINCPSZ128rmb,  TB_BCAST_SS },
-  { X86::VMINCPSZ256rr,  X86::VMINCPSZ256rmb,  TB_BCAST_SS },
-  { X86::VMINCPSZrr,     X86::VMINCPSZrmb,     TB_BCAST_SS },
-  { X86::VMINPDZ128rr,   X86::VMINPDZ128rmb,   TB_BCAST_SD },
-  { X86::VMINPDZ256rr,   X86::VMINPDZ256rmb,   TB_BCAST_SD },
-  { X86::VMINPDZrr,      X86::VMINPDZrmb,      TB_BCAST_SD },
-  { X86::VMINPSZ128rr,   X86::VMINPSZ128rmb,   TB_BCAST_SS },
-  { X86::VMINPSZ256rr,   X86::VMINPSZ256rmb,   TB_BCAST_SS },
-  { X86::VMINPSZrr,      X86::VMINPSZrmb,      TB_BCAST_SS },
-  { X86::VMULPDZ128rr,   X86::VMULPDZ128rmb,   TB_BCAST_SD },
-  { X86::VMULPDZ256rr,   X86::VMULPDZ256rmb,   TB_BCAST_SD },
-  { X86::VMULPDZrr,      X86::VMULPDZrmb,      TB_BCAST_SD },
-  { X86::VMULPSZ128rr,   X86::VMULPSZ128rmb,   TB_BCAST_SS },
-  { X86::VMULPSZ256rr,   X86::VMULPSZ256rmb,   TB_BCAST_SS },
-  { X86::VMULPSZrr,      X86::VMULPSZrmb,      TB_BCAST_SS },
-  { X86::VORPDZ128rr,    X86::VORPDZ128rmb,    TB_BCAST_SD },
-  { X86::VORPDZ256rr,    X86::VORPDZ256rmb,    TB_BCAST_SD },
-  { X86::VORPDZrr,       X86::VORPDZrmb,       TB_BCAST_SD },
-  { X86::VORPSZ128rr,    X86::VORPSZ128rmb,    TB_BCAST_SS },
-  { X86::VORPSZ256rr,    X86::VORPSZ256rmb,    TB_BCAST_SS },
-  { X86::VORPSZrr,       X86::VORPSZrmb,       TB_BCAST_SS },
-  { X86::VPADDDZ128rr,   X86::VPADDDZ128rmb,   TB_BCAST_D },
-  { X86::VPADDDZ256rr,   X86::VPADDDZ256rmb,   TB_BCAST_D },
-  { X86::VPADDDZrr,      X86::VPADDDZrmb,      TB_BCAST_D },
-  { X86::VPADDQZ128rr,   X86::VPADDQZ128rmb,   TB_BCAST_Q },
-  { X86::VPADDQZ256rr,   X86::VPADDQZ256rmb,   TB_BCAST_Q },
-  { X86::VPADDQZrr,      X86::VPADDQZrmb,      TB_BCAST_Q },
-  { X86::VPANDDZ128rr,   X86::VPANDDZ128rmb,   TB_BCAST_D },
-  { X86::VPANDDZ256rr,   X86::VPANDDZ256rmb,   TB_BCAST_D },
-  { X86::VPANDDZrr,      X86::VPANDDZrmb,      TB_BCAST_D },
-  { X86::VPANDNDZ128rr,  X86::VPANDNDZ128rmb,  TB_BCAST_D },
-  { X86::VPANDNDZ256rr,  X86::VPANDNDZ256rmb,  TB_BCAST_D },
-  { X86::VPANDNDZrr,     X86::VPANDNDZrmb,     TB_BCAST_D },
-  { X86::VPANDNQZ128rr,  X86::VPANDNQZ128rmb,  TB_BCAST_Q },
-  { X86::VPANDNQZ256rr,  X86::VPANDNQZ256rmb,  TB_BCAST_Q },
-  { X86::VPANDNQZrr,     X86::VPANDNQZrmb,     TB_BCAST_Q },
-  { X86::VPANDQZ128rr,   X86::VPANDQZ128rmb,   TB_BCAST_Q },
-  { X86::VPANDQZ256rr,   X86::VPANDQZ256rmb,   TB_BCAST_Q },
-  { X86::VPANDQZrr,      X86::VPANDQZrmb,      TB_BCAST_Q },
-  { X86::VPCMPDZ128rri,  X86::VPCMPDZ128rmib,  TB_BCAST_D },
-  { X86::VPCMPDZ256rri,  X86::VPCMPDZ256rmib,  TB_BCAST_D },
-  { X86::VPCMPDZrri,     X86::VPCMPDZrmib,     TB_BCAST_D },
-  { X86::VPCMPEQDZ128rr, X86::VPCMPEQDZ128rmb, TB_BCAST_D },
-  { X86::VPCMPEQDZ256rr, X86::VPCMPEQDZ256rmb, TB_BCAST_D },
-  { X86::VPCMPEQDZrr,    X86::VPCMPEQDZrmb,    TB_BCAST_D },
-  { X86::VPCMPEQQZ128rr, X86::VPCMPEQQZ128rmb, TB_BCAST_Q },
-  { X86::VPCMPEQQZ256rr, X86::VPCMPEQQZ256rmb, TB_BCAST_Q },
-  { X86::VPCMPEQQZrr,    X86::VPCMPEQQZrmb,    TB_BCAST_Q },
-  { X86::VPCMPGTDZ128rr, X86::VPCMPGTDZ128rmb, TB_BCAST_D },
-  { X86::VPCMPGTDZ256rr, X86::VPCMPGTDZ256rmb, TB_BCAST_D },
-  { X86::VPCMPGTDZrr,    X86::VPCMPGTDZrmb,    TB_BCAST_D },
-  { X86::VPCMPGTQZ128rr, X86::VPCMPGTQZ128rmb, TB_BCAST_Q },
-  { X86::VPCMPGTQZ256rr, X86::VPCMPGTQZ256rmb, TB_BCAST_Q },
-  { X86::VPCMPGTQZrr,    X86::VPCMPGTQZrmb,    TB_BCAST_Q },
-  { X86::VPCMPQZ128rri,  X86::VPCMPQZ128rmib,  TB_BCAST_Q },
-  { X86::VPCMPQZ256rri,  X86::VPCMPQZ256rmib,  TB_BCAST_Q },
-  { X86::VPCMPQZrri,     X86::VPCMPQZrmib,     TB_BCAST_Q },
-  { X86::VPCMPUDZ128rri, X86::VPCMPUDZ128rmib, TB_BCAST_D },
-  { X86::VPCMPUDZ256rri, X86::VPCMPUDZ256rmib, TB_BCAST_D },
-  { X86::VPCMPUDZrri,    X86::VPCMPUDZrmib,    TB_BCAST_D },
-  { X86::VPCMPUQZ128rri, X86::VPCMPUQZ128rmib, TB_BCAST_Q },
-  { X86::VPCMPUQZ256rri, X86::VPCMPUQZ256rmib, TB_BCAST_Q },
-  { X86::VPCMPUQZrri,    X86::VPCMPUQZrmib,    TB_BCAST_Q },
-  { X86::VPMAXSDZ128rr,  X86::VPMAXSDZ128rmb,  TB_BCAST_D },
-  { X86::VPMAXSDZ256rr,  X86::VPMAXSDZ256rmb,  TB_BCAST_D },
-  { X86::VPMAXSDZrr,     X86::VPMAXSDZrmb,     TB_BCAST_D },
-  { X86::VPMAXSQZ128rr,  X86::VPMAXSQZ128rmb,  TB_BCAST_Q },
-  { X86::VPMAXSQZ256rr,  X86::VPMAXSQZ256rmb,  TB_BCAST_Q },
-  { X86::VPMAXSQZrr,     X86::VPMAXSQZrmb,     TB_BCAST_Q },
-  { X86::VPMAXUDZ128rr,  X86::VPMAXUDZ128rmb,  TB_BCAST_D },
-  { X86::VPMAXUDZ256rr,  X86::VPMAXUDZ256rmb,  TB_BCAST_D },
-  { X86::VPMAXUDZrr,     X86::VPMAXUDZrmb,     TB_BCAST_D },
-  { X86::VPMAXUQZ128rr,  X86::VPMAXUQZ128rmb,  TB_BCAST_Q },
-  { X86::VPMAXUQZ256rr,  X86::VPMAXUQZ256rmb,  TB_BCAST_Q },
-  { X86::VPMAXUQZrr,     X86::VPMAXUQZrmb,     TB_BCAST_Q },
-  { X86::VPMINSDZ128rr,  X86::VPMINSDZ128rmb,  TB_BCAST_D },
-  { X86::VPMINSDZ256rr,  X86::VPMINSDZ256rmb,  TB_BCAST_D },
-  { X86::VPMINSDZrr,     X86::VPMINSDZrmb,     TB_BCAST_D },
-  { X86::VPMINSQZ128rr,  X86::VPMINSQZ128rmb,  TB_BCAST_Q },
-  { X86::VPMINSQZ256rr,  X86::VPMINSQZ256rmb,  TB_BCAST_Q },
-  { X86::VPMINSQZrr,     X86::VPMINSQZrmb,     TB_BCAST_Q },
-  { X86::VPMINUDZ128rr,  X86::VPMINUDZ128rmb,  TB_BCAST_D },
-  { X86::VPMINUDZ256rr,  X86::VPMINUDZ256rmb,  TB_BCAST_D },
-  { X86::VPMINUDZrr,     X86::VPMINUDZrmb,     TB_BCAST_D },
-  { X86::VPMINUQZ128rr,  X86::VPMINUQZ128rmb,  TB_BCAST_Q },
-  { X86::VPMINUQZ256rr,  X86::VPMINUQZ256rmb,  TB_BCAST_Q },
-  { X86::VPMINUQZrr,     X86::VPMINUQZrmb,     TB_BCAST_Q },
-  { X86::VPMULDQZ128rr,  X86::VPMULDQZ128rmb,  TB_BCAST_Q },
-  { X86::VPMULDQZ256rr,  X86::VPMULDQZ256rmb,  TB_BCAST_Q },
-  { X86::VPMULDQZrr,     X86::VPMULDQZrmb,     TB_BCAST_Q },
-  { X86::VPMULLDZ128rr,  X86::VPMULLDZ128rmb,  TB_BCAST_D },
-  { X86::VPMULLDZ256rr,  X86::VPMULLDZ256rmb,  TB_BCAST_D },
-  { X86::VPMULLDZrr,     X86::VPMULLDZrmb,     TB_BCAST_D },
-  { X86::VPMULLQZ128rr,  X86::VPMULLQZ128rmb,  TB_BCAST_Q },
-  { X86::VPMULLQZ256rr,  X86::VPMULLQZ256rmb,  TB_BCAST_Q },
-  { X86::VPMULLQZrr,     X86::VPMULLQZrmb,     TB_BCAST_Q },
-  { X86::VPMULUDQZ128rr, X86::VPMULUDQZ128rmb, TB_BCAST_Q },
-  { X86::VPMULUDQZ256rr, X86::VPMULUDQZ256rmb, TB_BCAST_Q },
-  { X86::VPMULUDQZrr,    X86::VPMULUDQZrmb,    TB_BCAST_Q },
-  { X86::VPORDZ128rr,    X86::VPORDZ128rmb,    TB_BCAST_D },
-  { X86::VPORDZ256rr,    X86::VPORDZ256rmb,    TB_BCAST_D },
-  { X86::VPORDZrr,       X86::VPORDZrmb,       TB_BCAST_D },
-  { X86::VPORQZ128rr,    X86::VPORQZ128rmb,    TB_BCAST_Q },
-  { X86::VPORQZ256rr,    X86::VPORQZ256rmb,    TB_BCAST_Q },
-  { X86::VPORQZrr,       X86::VPORQZrmb,       TB_BCAST_Q },
-  { X86::VPTESTMDZ128rr, X86::VPTESTMDZ128rmb, TB_BCAST_D },
-  { X86::VPTESTMDZ256rr, X86::VPTESTMDZ256rmb, TB_BCAST_D },
-  { X86::VPTESTMDZrr,    X86::VPTESTMDZrmb,    TB_BCAST_D },
-  { X86::VPTESTMQZ128rr, X86::VPTESTMQZ128rmb, TB_BCAST_Q },
-  { X86::VPTESTMQZ256rr, X86::VPTESTMQZ256rmb, TB_BCAST_Q },
-  { X86::VPTESTMQZrr,    X86::VPTESTMQZrmb,    TB_BCAST_Q },
-  { X86::VPTESTNMDZ128rr,X86::VPTESTNMDZ128rmb,TB_BCAST_D },
-  { X86::VPTESTNMDZ256rr,X86::VPTESTNMDZ256rmb,TB_BCAST_D },
-  { X86::VPTESTNMDZrr,   X86::VPTESTNMDZrmb,   TB_BCAST_D },
-  { X86::VPTESTNMQZ128rr,X86::VPTESTNMQZ128rmb,TB_BCAST_Q },
-  { X86::VPTESTNMQZ256rr,X86::VPTESTNMQZ256rmb,TB_BCAST_Q },
-  { X86::VPTESTNMQZrr,   X86::VPTESTNMQZrmb,   TB_BCAST_Q },
-  { X86::VPXORDZ128rr,   X86::VPXORDZ128rmb,   TB_BCAST_D },
-  { X86::VPXORDZ256rr,   X86::VPXORDZ256rmb,   TB_BCAST_D },
-  { X86::VPXORDZrr,      X86::VPXORDZrmb,      TB_BCAST_D },
-  { X86::VPXORQZ128rr,   X86::VPXORQZ128rmb,   TB_BCAST_Q },
-  { X86::VPXORQZ256rr,   X86::VPXORQZ256rmb,   TB_BCAST_Q },
-  { X86::VPXORQZrr,      X86::VPXORQZrmb,      TB_BCAST_Q },
-  { X86::VSUBPDZ128rr,   X86::VSUBPDZ128rmb,   TB_BCAST_SD },
-  { X86::VSUBPDZ256rr,   X86::VSUBPDZ256rmb,   TB_BCAST_SD },
-  { X86::VSUBPDZrr,      X86::VSUBPDZrmb,      TB_BCAST_SD },
-  { X86::VSUBPSZ128rr,   X86::VSUBPSZ128rmb,   TB_BCAST_SS },
-  { X86::VSUBPSZ256rr,   X86::VSUBPSZ256rmb,   TB_BCAST_SS },
-  { X86::VSUBPSZrr,      X86::VSUBPSZrmb,      TB_BCAST_SS },
-  { X86::VXORPDZ128rr,   X86::VXORPDZ128rmb,   TB_BCAST_SD },
-  { X86::VXORPDZ256rr,   X86::VXORPDZ256rmb,   TB_BCAST_SD },
-  { X86::VXORPDZrr,      X86::VXORPDZrmb,      TB_BCAST_SD },
-  { X86::VXORPSZ128rr,   X86::VXORPSZ128rmb,   TB_BCAST_SS },
-  { X86::VXORPSZ256rr,   X86::VXORPSZ256rmb,   TB_BCAST_SS },
-  { X86::VXORPSZrr,      X86::VXORPSZrmb,      TB_BCAST_SS },
+    {X86::VADDPDZ128rr, X86::VADDPDZ128rmb, TB_BCAST_SD},
+    {X86::VADDPDZ256rr, X86::VADDPDZ256rmb, TB_BCAST_SD},
+    {X86::VADDPDZrr, X86::VADDPDZrmb, TB_BCAST_SD},
+    {X86::VADDPSZ128rr, X86::VADDPSZ128rmb, TB_BCAST_SS},
+    {X86::VADDPSZ256rr, X86::VADDPSZ256rmb, TB_BCAST_SS},
+    {X86::VADDPSZrr, X86::VADDPSZrmb, TB_BCAST_SS},
+    {X86::VANDNPDZ128rr, X86::VANDNPDZ128rmb, TB_BCAST_SD},
+    {X86::VANDNPDZ256rr, X86::VANDNPDZ256rmb, TB_BCAST_SD},
+    {X86::VANDNPDZrr, X86::VANDNPDZrmb, TB_BCAST_SD},
+    {X86::VANDNPSZ128rr, X86::VANDNPSZ128rmb, TB_BCAST_SS},
+    {X86::VANDNPSZ256rr, X86::VANDNPSZ256rmb, TB_BCAST_SS},
+    {X86::VANDNPSZrr, X86::VANDNPSZrmb, TB_BCAST_SS},
+    {X86::VANDPDZ128rr, X86::VANDPDZ128rmb, TB_BCAST_SD},
+    {X86::VANDPDZ256rr, X86::VANDPDZ256rmb, TB_BCAST_SD},
+    {X86::VANDPDZrr, X86::VANDPDZrmb, TB_BCAST_SD},
+    {X86::VANDPSZ128rr, X86::VANDPSZ128rmb, TB_BCAST_SS},
+    {X86::VANDPSZ256rr, X86::VANDPSZ256rmb, TB_BCAST_SS},
+    {X86::VANDPSZrr, X86::VANDPSZrmb, TB_BCAST_SS},
+    {X86::VCMPPDZ128rri, X86::VCMPPDZ128rmbi, TB_BCAST_SD},
+    {X86::VCMPPDZ256rri, X86::VCMPPDZ256rmbi, TB_BCAST_SD},
+    {X86::VCMPPDZrri, X86::VCMPPDZrmbi, TB_BCAST_SD},
+    {X86::VCMPPSZ128rri, X86::VCMPPSZ128rmbi, TB_BCAST_SS},
+    {X86::VCMPPSZ256rri, X86::VCMPPSZ256rmbi, TB_BCAST_SS},
+    {X86::VCMPPSZrri, X86::VCMPPSZrmbi, TB_BCAST_SS},
+    {X86::VDIVPDZ128rr, X86::VDIVPDZ128rmb, TB_BCAST_SD},
+    {X86::VDIVPDZ256rr, X86::VDIVPDZ256rmb, TB_BCAST_SD},
+    {X86::VDIVPDZrr, X86::VDIVPDZrmb, TB_BCAST_SD},
+    {X86::VDIVPSZ128rr, X86::VDIVPSZ128rmb, TB_BCAST_SS},
+    {X86::VDIVPSZ256rr, X86::VDIVPSZ256rmb, TB_BCAST_SS},
+    {X86::VDIVPSZrr, X86::VDIVPSZrmb, TB_BCAST_SS},
+    {X86::VMAXCPDZ128rr, X86::VMAXCPDZ128rmb, TB_BCAST_SD},
+    {X86::VMAXCPDZ256rr, X86::VMAXCPDZ256rmb, TB_BCAST_SD},
+    {X86::VMAXCPDZrr, X86::VMAXCPDZrmb, TB_BCAST_SD},
+    {X86::VMAXCPSZ128rr, X86::VMAXCPSZ128rmb, TB_BCAST_SS},
+    {X86::VMAXCPSZ256rr, X86::VMAXCPSZ256rmb, TB_BCAST_SS},
+    {X86::VMAXCPSZrr, X86::VMAXCPSZrmb, TB_BCAST_SS},
+    {X86::VMAXPDZ128rr, X86::VMAXPDZ128rmb, TB_BCAST_SD},
+    {X86::VMAXPDZ256rr, X86::VMAXPDZ256rmb, TB_BCAST_SD},
+    {X86::VMAXPDZrr, X86::VMAXPDZrmb, TB_BCAST_SD},
+    {X86::VMAXPSZ128rr, X86::VMAXPSZ128rmb, TB_BCAST_SS},
+    {X86::VMAXPSZ256rr, X86::VMAXPSZ256rmb, TB_BCAST_SS},
+    {X86::VMAXPSZrr, X86::VMAXPSZrmb, TB_BCAST_SS},
+    {X86::VMINCPDZ128rr, X86::VMINCPDZ128rmb, TB_BCAST_SD},
+    {X86::VMINCPDZ256rr, X86::VMINCPDZ256rmb, TB_BCAST_SD},
+    {X86::VMINCPDZrr, X86::VMINCPDZrmb, TB_BCAST_SD},
+    {X86::VMINCPSZ128rr, X86::VMINCPSZ128rmb, TB_BCAST_SS},
+    {X86::VMINCPSZ256rr, X86::VMINCPSZ256rmb, TB_BCAST_SS},
+    {X86::VMINCPSZrr, X86::VMINCPSZrmb, TB_BCAST_SS},
+    {X86::VMINPDZ128rr, X86::VMINPDZ128rmb, TB_BCAST_SD},
+    {X86::VMINPDZ256rr, X86::VMINPDZ256rmb, TB_BCAST_SD},
+    {X86::VMINPDZrr, X86::VMINPDZrmb, TB_BCAST_SD},
+    {X86::VMINPSZ128rr, X86::VMINPSZ128rmb, TB_BCAST_SS},
+    {X86::VMINPSZ256rr, X86::VMINPSZ256rmb, TB_BCAST_SS},
+    {X86::VMINPSZrr, X86::VMINPSZrmb, TB_BCAST_SS},
+    {X86::VMULPDZ128rr, X86::VMULPDZ128rmb, TB_BCAST_SD},
+    {X86::VMULPDZ256rr, X86::VMULPDZ256rmb, TB_BCAST_SD},
+    {X86::VMULPDZrr, X86::VMULPDZrmb, TB_BCAST_SD},
+    {X86::VMULPSZ128rr, X86::VMULPSZ128rmb, TB_BCAST_SS},
+    {X86::VMULPSZ256rr, X86::VMULPSZ256rmb, TB_BCAST_SS},
+    {X86::VMULPSZrr, X86::VMULPSZrmb, TB_BCAST_SS},
+    {X86::VORPDZ128rr, X86::VORPDZ128rmb, TB_BCAST_SD},
+    {X86::VORPDZ256rr, X86::VORPDZ256rmb, TB_BCAST_SD},
+    {X86::VORPDZrr, X86::VORPDZrmb, TB_BCAST_SD},
+    {X86::VORPSZ128rr, X86::VORPSZ128rmb, TB_BCAST_SS},
+    {X86::VORPSZ256rr, X86::VORPSZ256rmb, TB_BCAST_SS},
+    {X86::VORPSZrr, X86::VORPSZrmb, TB_BCAST_SS},
+    {X86::VPADDDZ128rr, X86::VPADDDZ128rmb, TB_BCAST_D},
+    {X86::VPADDDZ256rr, X86::VPADDDZ256rmb, TB_BCAST_D},
+    {X86::VPADDDZrr, X86::VPADDDZrmb, TB_BCAST_D},
+    {X86::VPADDQZ128rr, X86::VPADDQZ128rmb, TB_BCAST_Q},
+    {X86::VPADDQZ256rr, X86::VPADDQZ256rmb, TB_BCAST_Q},
+    {X86::VPADDQZrr, X86::VPADDQZrmb, TB_BCAST_Q},
+    {X86::VPANDDZ128rr, X86::VPANDDZ128rmb, TB_BCAST_D},
+    {X86::VPANDDZ256rr, X86::VPANDDZ256rmb, TB_BCAST_D},
+    {X86::VPANDDZrr, X86::VPANDDZrmb, TB_BCAST_D},
+    {X86::VPANDNDZ128rr, X86::VPANDNDZ128rmb, TB_BCAST_D},
+    {X86::VPANDNDZ256rr, X86::VPANDNDZ256rmb, TB_BCAST_D},
+    {X86::VPANDNDZrr, X86::VPANDNDZrmb, TB_BCAST_D},
+    {X86::VPANDNQZ128rr, X86::VPANDNQZ128rmb, TB_BCAST_Q},
+    {X86::VPANDNQZ256rr, X86::VPANDNQZ256rmb, TB_BCAST_Q},
+    {X86::VPANDNQZrr, X86::VPANDNQZrmb, TB_BCAST_Q},
+    {X86::VPANDQZ128rr, X86::VPANDQZ128rmb, TB_BCAST_Q},
+    {X86::VPANDQZ256rr, X86::VPANDQZ256rmb, TB_BCAST_Q},
+    {X86::VPANDQZrr, X86::VPANDQZrmb, TB_BCAST_Q},
+    {X86::VPCMPDZ128rri, X86::VPCMPDZ128rmib, TB_BCAST_D},
+    {X86::VPCMPDZ256rri, X86::VPCMPDZ256rmib, TB_BCAST_D},
+    {X86::VPCMPDZrri, X86::VPCMPDZrmib, TB_BCAST_D},
+    {X86::VPCMPEQDZ128rr, X86::VPCMPEQDZ128rmb, TB_BCAST_D},
+    {X86::VPCMPEQDZ256rr, X86::VPCMPEQDZ256rmb, TB_BCAST_D},
+    {X86::VPCMPEQDZrr, X86::VPCMPEQDZrmb, TB_BCAST_D},
+    {X86::VPCMPEQQZ128rr, X86::VPCMPEQQZ128rmb, TB_BCAST_Q},
+    {X86::VPCMPEQQZ256rr, X86::VPCMPEQQZ256rmb, TB_BCAST_Q},
+    {X86::VPCMPEQQZrr, X86::VPCMPEQQZrmb, TB_BCAST_Q},
+    {X86::VPCMPGTDZ128rr, X86::VPCMPGTDZ128rmb, TB_BCAST_D},
+    {X86::VPCMPGTDZ256rr, X86::VPCMPGTDZ256rmb, TB_BCAST_D},
+    {X86::VPCMPGTDZrr, X86::VPCMPGTDZrmb, TB_BCAST_D},
+    {X86::VPCMPGTQZ128rr, X86::VPCMPGTQZ128rmb, TB_BCAST_Q},
+    {X86::VPCMPGTQZ256rr, X86::VPCMPGTQZ256rmb, TB_BCAST_Q},
+    {X86::VPCMPGTQZrr, X86::VPCMPGTQZrmb, TB_BCAST_Q},
+    {X86::VPCMPQZ128rri, X86::VPCMPQZ128rmib, TB_BCAST_Q},
+    {X86::VPCMPQZ256rri, X86::VPCMPQZ256rmib, TB_BCAST_Q},
+    {X86::VPCMPQZrri, X86::VPCMPQZrmib, TB_BCAST_Q},
+    {X86::VPCMPUDZ128rri, X86::VPCMPUDZ128rmib, TB_BCAST_D},
+    {X86::VPCMPUDZ256rri, X86::VPCMPUDZ256rmib, TB_BCAST_D},
+    {X86::VPCMPUDZrri, X86::VPCMPUDZrmib, TB_BCAST_D},
+    {X86::VPCMPUQZ128rri, X86::VPCMPUQZ128rmib, TB_BCAST_Q},
+    {X86::VPCMPUQZ256rri, X86::VPCMPUQZ256rmib, TB_BCAST_Q},
+    {X86::VPCMPUQZrri, X86::VPCMPUQZrmib, TB_BCAST_Q},
+    {X86::VPMAXSDZ128rr, X86::VPMAXSDZ128rmb, TB_BCAST_D},
+    {X86::VPMAXSDZ256rr, X86::VPMAXSDZ256rmb, TB_BCAST_D},
+    {X86::VPMAXSDZrr, X86::VPMAXSDZrmb, TB_BCAST_D},
+    {X86::VPMAXSQZ128rr, X86::VPMAXSQZ128rmb, TB_BCAST_Q},
+    {X86::VPMAXSQZ256rr, X86::VPMAXSQZ256rmb, TB_BCAST_Q},
+    {X86::VPMAXSQZrr, X86::VPMAXSQZrmb, TB_BCAST_Q},
+    {X86::VPMAXUDZ128rr, X86::VPMAXUDZ128rmb, TB_BCAST_D},
+    {X86::VPMAXUDZ256rr, X86::VPMAXUDZ256rmb, TB_BCAST_D},
+    {X86::VPMAXUDZrr, X86::VPMAXUDZrmb, TB_BCAST_D},
+    {X86::VPMAXUQZ128rr, X86::VPMAXUQZ128rmb, TB_BCAST_Q},
+    {X86::VPMAXUQZ256rr, X86::VPMAXUQZ256rmb, TB_BCAST_Q},
+    {X86::VPMAXUQZrr, X86::VPMAXUQZrmb, TB_BCAST_Q},
+    {X86::VPMINSDZ128rr, X86::VPMINSDZ128rmb, TB_BCAST_D},
+    {X86::VPMINSDZ256rr, X86::VPMINSDZ256rmb, TB_BCAST_D},
+    {X86::VPMINSDZrr, X86::VPMINSDZrmb, TB_BCAST_D},
+    {X86::VPMINSQZ128rr, X86::VPMINSQZ128rmb, TB_BCAST_Q},
+    {X86::VPMINSQZ256rr, X86::VPMINSQZ256rmb, TB_BCAST_Q},
+    {X86::VPMINSQZrr, X86::VPMINSQZrmb, TB_BCAST_Q},
+    {X86::VPMINUDZ128rr, X86::VPMINUDZ128rmb, TB_BCAST_D},
+    {X86::VPMINUDZ256rr, X86::VPMINUDZ256rmb, TB_BCAST_D},
+    {X86::VPMINUDZrr, X86::VPMINUDZrmb, TB_BCAST_D},
+    {X86::VPMINUQZ128rr, X86::VPMINUQZ128rmb, TB_BCAST_Q},
+    {X86::VPMINUQZ256rr, X86::VPMINUQZ256rmb, TB_BCAST_Q},
+    {X86::VPMINUQZrr, X86::VPMINUQZrmb, TB_BCAST_Q},
+    {X86::VPMULDQZ128rr, X86::VPMULDQZ128rmb, TB_BCAST_Q},
+    {X86::VPMULDQZ256rr, X86::VPMULDQZ256rmb, TB_BCAST_Q},
+    {X86::VPMULDQZrr, X86::VPMULDQZrmb, TB_BCAST_Q},
+    {X86::VPMULLDZ128rr, X86::VPMULLDZ128rmb, TB_BCAST_D},
+    {X86::VPMULLDZ256rr, X86::VPMULLDZ256rmb, TB_BCAST_D},
+    {X86::VPMULLDZrr, X86::VPMULLDZrmb, TB_BCAST_D},
+    {X86::VPMULLQZ128rr, X86::VPMULLQZ128rmb, TB_BCAST_Q},
+    {X86::VPMULLQZ256rr, X86::VPMULLQZ256rmb, TB_BCAST_Q},
+    {X86::VPMULLQZrr, X86::VPMULLQZrmb, TB_BCAST_Q},
+    {X86::VPMULUDQZ128rr, X86::VPMULUDQZ128rmb, TB_BCAST_Q},
+    {X86::VPMULUDQZ256rr, X86::VPMULUDQZ256rmb, TB_BCAST_Q},
+    {X86::VPMULUDQZrr, X86::VPMULUDQZrmb, TB_BCAST_Q},
+    {X86::VPORDZ128rr, X86::VPORDZ128rmb, TB_BCAST_D},
+    {X86::VPORDZ256rr, X86::VPORDZ256rmb, TB_BCAST_D},
+    {X86::VPORDZrr, X86::VPORDZrmb, TB_BCAST_D},
+    {X86::VPORQZ128rr, X86::VPORQZ128rmb, TB_BCAST_Q},
+    {X86::VPORQZ256rr, X86::VPORQZ256rmb, TB_BCAST_Q},
+    {X86::VPORQZrr, X86::VPORQZrmb, TB_BCAST_Q},
+    {X86::VPTESTMDZ128rr, X86::VPTESTMDZ128rmb, TB_BCAST_D},
+    {X86::VPTESTMDZ256rr, X86::VPTESTMDZ256rmb, TB_BCAST_D},
+    {X86::VPTESTMDZrr, X86::VPTESTMDZrmb, TB_BCAST_D},
+    {X86::VPTESTMQZ128rr, X86::VPTESTMQZ128rmb, TB_BCAST_Q},
+    {X86::VPTESTMQZ256rr, X86::VPTESTMQZ256rmb, TB_BCAST_Q},
+    {X86::VPTESTMQZrr, X86::VPTESTMQZrmb, TB_BCAST_Q},
+    {X86::VPTESTNMDZ128rr, X86::VPTESTNMDZ128rmb, TB_BCAST_D},
+    {X86::VPTESTNMDZ256rr, X86::VPTESTNMDZ256rmb, TB_BCAST_D},
+    {X86::VPTESTNMDZrr, X86::VPTESTNMDZrmb, TB_BCAST_D},
+    {X86::VPTESTNMQZ128rr, X86::VPTESTNMQZ128rmb, TB_BCAST_Q},
+    {X86::VPTESTNMQZ256rr, X86::VPTESTNMQZ256rmb, TB_BCAST_Q},
+    {X86::VPTESTNMQZrr, X86::VPTESTNMQZrmb, TB_BCAST_Q},
+    {X86::VPXORDZ128rr, X86::VPXORDZ128rmb, TB_BCAST_D},
+    {X86::VPXORDZ256rr, X86::VPXORDZ256rmb, TB_BCAST_D},
+    {X86::VPXORDZrr, X86::VPXORDZrmb, TB_BCAST_D},
+    {X86::VPXORQZ128rr, X86::VPXORQZ128rmb, TB_BCAST_Q},
+    {X86::VPXORQZ256rr, X86::VPXORQZ256rmb, TB_BCAST_Q},
+    {X86::VPXORQZrr, X86::VPXORQZrmb, TB_BCAST_Q},
+    {X86::VSUBPDZ128rr, X86::VSUBPDZ128rmb, TB_BCAST_SD},
+    {X86::VSUBPDZ256rr, X86::VSUBPDZ256rmb, TB_BCAST_SD},
+    {X86::VSUBPDZrr, X86::VSUBPDZrmb, TB_BCAST_SD},
+    {X86::VSUBPSZ128rr, X86::VSUBPSZ128rmb, TB_BCAST_SS},
+    {X86::VSUBPSZ256rr, X86::VSUBPSZ256rmb, TB_BCAST_SS},
+    {X86::VSUBPSZrr, X86::VSUBPSZrmb, TB_BCAST_SS},
+    {X86::VXORPDZ128rr, X86::VXORPDZ128rmb, TB_BCAST_SD},
+    {X86::VXORPDZ256rr, X86::VXORPDZ256rmb, TB_BCAST_SD},
+    {X86::VXORPDZrr, X86::VXORPDZrmb, TB_BCAST_SD},
+    {X86::VXORPSZ128rr, X86::VXORPSZ128rmb, TB_BCAST_SS},
+    {X86::VXORPSZ256rr, X86::VXORPSZ256rmb, TB_BCAST_SS},
+    {X86::VXORPSZrr, X86::VXORPSZrmb, TB_BCAST_SS},
 };
 
 static const X86MemoryFoldTableEntry BroadcastFoldTable3[] = {
-  { X86::VFMADD132PDZ128r,     X86::VFMADD132PDZ128mb,    TB_BCAST_SD },
-  { X86::VFMADD132PDZ256r,     X86::VFMADD132PDZ256mb,    TB_BCAST_SD },
-  { X86::VFMADD132PDZr,        X86::VFMADD132PDZmb,       TB_BCAST_SD },
-  { X86::VFMADD132PSZ128r,     X86::VFMADD132PSZ128mb,    TB_BCAST_SS },
-  { X86::VFMADD132PSZ256r,     X86::VFMADD132PSZ256mb,    TB_BCAST_SS },
-  { X86::VFMADD132PSZr,        X86::VFMADD132PSZmb,       TB_BCAST_SS },
-  { X86::VFMADD213PDZ128r,     X86::VFMADD213PDZ128mb,    TB_BCAST_SD },
-  { X86::VFMADD213PDZ256r,     X86::VFMADD213PDZ256mb,    TB_BCAST_SD },
-  { X86::VFMADD213PDZr,        X86::VFMADD213PDZmb,       TB_BCAST_SD },
-  { X86::VFMADD213PSZ128r,     X86::VFMADD213PSZ128mb,    TB_BCAST_SS },
-  { X86::VFMADD213PSZ256r,     X86::VFMADD213PSZ256mb,    TB_BCAST_SS },
-  { X86::VFMADD213PSZr,        X86::VFMADD213PSZmb,       TB_BCAST_SS },
-  { X86::VFMADD231PDZ128r,     X86::VFMADD231PDZ128mb,    TB_BCAST_SD },
-  { X86::VFMADD231PDZ256r,     X86::VFMADD231PDZ256mb,    TB_BCAST_SD },
-  { X86::VFMADD231PDZr,        X86::VFMADD231PDZmb,       TB_BCAST_SD },
-  { X86::VFMADD231PSZ128r,     X86::VFMADD231PSZ128mb,    TB_BCAST_SS },
-  { X86::VFMADD231PSZ256r,     X86::VFMADD231PSZ256mb,    TB_BCAST_SS },
-  { X86::VFMADD231PSZr,        X86::VFMADD231PSZmb,       TB_BCAST_SS },
-  { X86::VFMADDSUB132PDZ128r,  X86::VFMADDSUB132PDZ128mb, TB_BCAST_SD },
-  { X86::VFMADDSUB132PDZ256r,  X86::VFMADDSUB132PDZ256mb, TB_BCAST_SD },
-  { X86::VFMADDSUB132PDZr,     X86::VFMADDSUB132PDZmb,    TB_BCAST_SD },
-  { X86::VFMADDSUB132PSZ128r,  X86::VFMADDSUB132PSZ128mb, TB_BCAST_SS },
-  { X86::VFMADDSUB132PSZ256r,  X86::VFMADDSUB132PSZ256mb, TB_BCAST_SS },
-  { X86::VFMADDSUB132PSZr,     X86::VFMADDSUB132PSZmb,    TB_BCAST_SS },
-  { X86::VFMADDSUB213PDZ128r,  X86::VFMADDSUB213PDZ128mb, TB_BCAST_SD },
-  { X86::VFMADDSUB213PDZ256r,  X86::VFMADDSUB213PDZ256mb, TB_BCAST_SD },
-  { X86::VFMADDSUB213PDZr,     X86::VFMADDSUB213PDZmb,    TB_BCAST_SD },
-  { X86::VFMADDSUB213PSZ128r,  X86::VFMADDSUB213PSZ128mb, TB_BCAST_SS },
-  { X86::VFMADDSUB213PSZ256r,  X86::VFMADDSUB213PSZ256mb, TB_BCAST_SS },
-  { X86::VFMADDSUB213PSZr,     X86::VFMADDSUB213PSZmb,    TB_BCAST_SS },
-  { X86::VFMADDSUB231PDZ128r,  X86::VFMADDSUB231PDZ128mb, TB_BCAST_SD },
-  { X86::VFMADDSUB231PDZ256r,  X86::VFMADDSUB231PDZ256mb, TB_BCAST_SD },
-  { X86::VFMADDSUB231PDZr,     X86::VFMADDSUB231PDZmb,    TB_BCAST_SD },
-  { X86::VFMADDSUB231PSZ128r,  X86::VFMADDSUB231PSZ128mb, TB_BCAST_SS },
-  { X86::VFMADDSUB231PSZ256r,  X86::VFMADDSUB231PSZ256mb, TB_BCAST_SS },
-  { X86::VFMADDSUB231PSZr,     X86::VFMADDSUB231PSZmb,    TB_BCAST_SS },
-  { X86::VFMSUB132PDZ128r,     X86::VFMSUB132PDZ128mb,    TB_BCAST_SD },
-  { X86::VFMSUB132PDZ256r,     X86::VFMSUB132PDZ256mb,    TB_BCAST_SD },
-  { X86::VFMSUB132PDZr,        X86::VFMSUB132PDZmb,       TB_BCAST_SD },
-  { X86::VFMSUB132PSZ128r,     X86::VFMSUB132PSZ128mb,    TB_BCAST_SS },
-  { X86::VFMSUB132PSZ256r,     X86::VFMSUB132PSZ256mb,    TB_BCAST_SS },
-  { X86::VFMSUB132PSZr,        X86::VFMSUB132PSZmb,       TB_BCAST_SS },
-  { X86::VFMSUB213PDZ128r,     X86::VFMSUB213PDZ128mb,    TB_BCAST_SD },
-  { X86::VFMSUB213PDZ256r,     X86::VFMSUB213PDZ256mb,    TB_BCAST_SD },
-  { X86::VFMSUB213PDZr,        X86::VFMSUB213PDZmb,       TB_BCAST_SD },
-  { X86::VFMSUB213PSZ128r,     X86::VFMSUB213PSZ128mb,    TB_BCAST_SS },
-  { X86::VFMSUB213PSZ256r,     X86::VFMSUB213PSZ256mb,    TB_BCAST_SS },
-  { X86::VFMSUB213PSZr,        X86::VFMSUB213PSZmb,       TB_BCAST_SS },
-  { X86::VFMSUB231PDZ128r,     X86::VFMSUB231PDZ128mb,    TB_BCAST_SD },
-  { X86::VFMSUB231PDZ256r,     X86::VFMSUB231PDZ256mb,    TB_BCAST_SD },
-  { X86::VFMSUB231PDZr,        X86::VFMSUB231PDZmb,       TB_BCAST_SD },
-  { X86::VFMSUB231PSZ128r,     X86::VFMSUB231PSZ128mb,    TB_BCAST_SS },
-  { X86::VFMSUB231PSZ256r,     X86::VFMSUB231PSZ256mb,    TB_BCAST_SS },
-  { X86::VFMSUB231PSZr,        X86::VFMSUB231PSZmb,       TB_BCAST_SS },
-  { X86::VFMSUBADD132PDZ128r,  X86::VFMSUBADD132PDZ128mb, TB_BCAST_SD },
-  { X86::VFMSUBADD132PDZ256r,  X86::VFMSUBADD132PDZ256mb, TB_BCAST_SD },
-  { X86::VFMSUBADD132PDZr,     X86::VFMSUBADD132PDZmb,    TB_BCAST_SD },
-  { X86::VFMSUBADD132PSZ128r,  X86::VFMSUBADD132PSZ128mb, TB_BCAST_SS },
-  { X86::VFMSUBADD132PSZ256r,  X86::VFMSUBADD132PSZ256mb, TB_BCAST_SS },
-  { X86::VFMSUBADD132PSZr,     X86::VFMSUBADD132PSZmb,    TB_BCAST_SS },
-  { X86::VFMSUBADD213PDZ128r,  X86::VFMSUBADD213PDZ128mb, TB_BCAST_SD },
-  { X86::VFMSUBADD213PDZ256r,  X86::VFMSUBADD213PDZ256mb, TB_BCAST_SD },
-  { X86::VFMSUBADD213PDZr,     X86::VFMSUBADD213PDZmb,    TB_BCAST_SD },
-  { X86::VFMSUBADD213PSZ128r,  X86::VFMSUBADD213PSZ128mb, TB_BCAST_SS },
-  { X86::VFMSUBADD213PSZ256r,  X86::VFMSUBADD213PSZ256mb, TB_BCAST_SS },
-  { X86::VFMSUBADD213PSZr,     X86::VFMSUBADD213PSZmb,    TB_BCAST_SS },
-  { X86::VFMSUBADD231PDZ128r,  X86::VFMSUBADD231PDZ128mb, TB_BCAST_SD },
-  { X86::VFMSUBADD231PDZ256r,  X86::VFMSUBADD231PDZ256mb, TB_BCAST_SD },
-  { X86::VFMSUBADD231PDZr,     X86::VFMSUBADD231PDZmb,    TB_BCAST_SD },
-  { X86::VFMSUBADD231PSZ128r,  X86::VFMSUBADD231PSZ128mb, TB_BCAST_SS },
-  { X86::VFMSUBADD231PSZ256r,  X86::VFMSUBADD231PSZ256mb, TB_BCAST_SS },
-  { X86::VFMSUBADD231PSZr,     X86::VFMSUBADD231PSZmb,    TB_BCAST_SS },
-  { X86::VFNMADD132PDZ128r,    X86::VFNMADD132PDZ128mb,   TB_BCAST_SD },
-  { X86::VFNMADD132PDZ256r,    X86::VFNMADD132PDZ256mb,   TB_BCAST_SD },
-  { X86::VFNMADD132PDZr,       X86::VFNMADD132PDZmb,      TB_BCAST_SD },
-  { X86::VFNMADD132PSZ128r,    X86::VFNMADD132PSZ128mb,   TB_BCAST_SS },
-  { X86::VFNMADD132PSZ256r,    X86::VFNMADD132PSZ256mb,   TB_BCAST_SS },
-  { X86::VFNMADD132PSZr,       X86::VFNMADD132PSZmb,      TB_BCAST_SS },
-  { X86::VFNMADD213PDZ128r,    X86::VFNMADD213PDZ128mb,   TB_BCAST_SD },
-  { X86::VFNMADD213PDZ256r,    X86::VFNMADD213PDZ256mb,   TB_BCAST_SD },
-  { X86::VFNMADD213PDZr,       X86::VFNMADD213PDZmb,      TB_BCAST_SD },
-  { X86::VFNMADD213PSZ128r,    X86::VFNMADD213PSZ128mb,   TB_BCAST_SS },
-  { X86::VFNMADD213PSZ256r,    X86::VFNMADD213PSZ256mb,   TB_BCAST_SS },
-  { X86::VFNMADD213PSZr,       X86::VFNMADD213PSZmb,      TB_BCAST_SS },
-  { X86::VFNMADD231PDZ128r,    X86::VFNMADD231PDZ128mb,   TB_BCAST_SD },
-  { X86::VFNMADD231PDZ256r,    X86::VFNMADD231PDZ256mb,   TB_BCAST_SD },
-  { X86::VFNMADD231PDZr,       X86::VFNMADD231PDZmb,      TB_BCAST_SD },
-  { X86::VFNMADD231PSZ128r,    X86::VFNMADD231PSZ128mb,   TB_BCAST_SS },
-  { X86::VFNMADD231PSZ256r,    X86::VFNMADD231PSZ256mb,   TB_BCAST_SS },
-  { X86::VFNMADD231PSZr,       X86::VFNMADD231PSZmb,      TB_BCAST_SS },
-  { X86::VFNMSUB132PDZ128r,    X86::VFNMSUB132PDZ128mb,   TB_BCAST_SD },
-  { X86::VFNMSUB132PDZ256r,    X86::VFNMSUB132PDZ256mb,   TB_BCAST_SD },
-  { X86::VFNMSUB132PDZr,       X86::VFNMSUB132PDZmb,      TB_BCAST_SD },
-  { X86::VFNMSUB132PSZ128r,    X86::VFNMSUB132PSZ128mb,   TB_BCAST_SS },
-  { X86::VFNMSUB132PSZ256r,    X86::VFNMSUB132PSZ256mb,   TB_BCAST_SS },
-  { X86::VFNMSUB132PSZr,       X86::VFNMSUB132PSZmb,      TB_BCAST_SS },
-  { X86::VFNMSUB213PDZ128r,    X86::VFNMSUB213PDZ128mb,   TB_BCAST_SD },
-  { X86::VFNMSUB213PDZ256r,    X86::VFNMSUB213PDZ256mb,   TB_BCAST_SD },
-  { X86::VFNMSUB213PDZr,       X86::VFNMSUB213PDZmb,      TB_BCAST_SD },
-  { X86::VFNMSUB213PSZ128r,    X86::VFNMSUB213PSZ128mb,   TB_BCAST_SS },
-  { X86::VFNMSUB213PSZ256r,    X86::VFNMSUB213PSZ256mb,   TB_BCAST_SS },
-  { X86::VFNMSUB213PSZr,       X86::VFNMSUB213PSZmb,      TB_BCAST_SS },
-  { X86::VFNMSUB231PDZ128r,    X86::VFNMSUB231PDZ128mb,   TB_BCAST_SD },
-  { X86::VFNMSUB231PDZ256r,    X86::VFNMSUB231PDZ256mb,   TB_BCAST_SD },
-  { X86::VFNMSUB231PDZr,       X86::VFNMSUB231PDZmb,      TB_BCAST_SD },
-  { X86::VFNMSUB231PSZ128r,    X86::VFNMSUB231PSZ128mb,   TB_BCAST_SS },
-  { X86::VFNMSUB231PSZ256r,    X86::VFNMSUB231PSZ256mb,   TB_BCAST_SS },
-  { X86::VFNMSUB231PSZr,       X86::VFNMSUB231PSZmb,      TB_BCAST_SS },
-  { X86::VPADDDZ128rrkz,       X86::VPADDDZ128rmbkz,      TB_BCAST_D },
-  { X86::VPADDDZ256rrkz,       X86::VPADDDZ256rmbkz,      TB_BCAST_D },
-  { X86::VPADDDZrrkz,          X86::VPADDDZrmbkz,         TB_BCAST_D },
-  { X86::VPADDQZ128rrkz,       X86::VPADDQZ128rmbkz,      TB_BCAST_Q },
-  { X86::VPADDQZ256rrkz,       X86::VPADDQZ256rmbkz,      TB_BCAST_Q },
-  { X86::VPADDQZrrkz,          X86::VPADDQZrmbkz,         TB_BCAST_Q },
-  { X86::VPANDDZ128rrkz,       X86::VPANDDZ128rmbkz,      TB_BCAST_D },
-  { X86::VPANDDZ256rrkz,       X86::VPANDDZ256rmbkz,      TB_BCAST_D },
-  { X86::VPANDDZrrkz,          X86::VPANDDZrmbkz,         TB_BCAST_D },
-  { X86::VPANDQZ128rrkz,       X86::VPANDQZ128rmbkz,      TB_BCAST_Q },
-  { X86::VPANDQZ256rrkz,       X86::VPANDQZ256rmbkz,      TB_BCAST_Q },
-  { X86::VPANDQZrrkz,          X86::VPANDQZrmbkz,         TB_BCAST_Q },
-  { X86::VPMULDQZ128rrkz,      X86::VPMULDQZ128rmbkz,     TB_BCAST_Q },
-  { X86::VPMULDQZ256rrkz,      X86::VPMULDQZ256rmbkz,     TB_BCAST_Q },
-  { X86::VPMULDQZrrkz,         X86::VPMULDQZrmbkz,        TB_BCAST_Q },
-  { X86::VPMULLDZ128rrkz,      X86::VPMULLDZ128rmbkz,     TB_BCAST_D },
-  { X86::VPMULLDZ256rrkz,      X86::VPMULLDZ256rmbkz,     TB_BCAST_D },
-  { X86::VPMULLDZrrkz,         X86::VPMULLDZrmbkz,        TB_BCAST_D },
-  { X86::VPMULLQZ128rrkz,      X86::VPMULLQZ128rmbkz,     TB_BCAST_Q },
-  { X86::VPMULLQZ256rrkz,      X86::VPMULLQZ256rmbkz,     TB_BCAST_Q },
-  { X86::VPMULLQZrrkz,         X86::VPMULLQZrmbkz,        TB_BCAST_Q },
-  { X86::VPMULUDQZ128rrkz,     X86::VPMULUDQZ128rmbkz,    TB_BCAST_Q },
-  { X86::VPMULUDQZ256rrkz,     X86::VPMULUDQZ256rmbkz,    TB_BCAST_Q },
-  { X86::VPMULUDQZrrkz,        X86::VPMULUDQZrmbkz,       TB_BCAST_Q },
-  { X86::VPORDZ128rrkz,        X86::VPORDZ128rmbkz,       TB_BCAST_D },
-  { X86::VPORDZ256rrkz,        X86::VPORDZ256rmbkz,       TB_BCAST_D },
-  { X86::VPORDZrrkz,           X86::VPORDZrmbkz,          TB_BCAST_D },
-  { X86::VPORQZ128rrkz,        X86::VPORQZ128rmbkz,       TB_BCAST_Q },
-  { X86::VPORQZ256rrkz,        X86::VPORQZ256rmbkz,       TB_BCAST_Q },
-  { X86::VPORQZrrkz,           X86::VPORQZrmbkz,          TB_BCAST_Q },
-  { X86::VPSUBDZ128rrkz,       X86::VPSUBDZ128rmbkz,      TB_BCAST_D },
-  { X86::VPSUBDZ256rrkz,       X86::VPSUBDZ256rmbkz,      TB_BCAST_D },
-  { X86::VPSUBDZrrkz,          X86::VPSUBDZrmbkz,         TB_BCAST_D },
-  { X86::VPSUBQZ128rrkz,       X86::VPSUBQZ128rmbkz,      TB_BCAST_Q },
-  { X86::VPSUBQZ256rrkz,       X86::VPSUBQZ256rmbkz,      TB_BCAST_Q },
-  { X86::VPSUBQZrrkz,          X86::VPSUBQZrmbkz,         TB_BCAST_Q },
-  { X86::VPTERNLOGDZ128rri,    X86::VPTERNLOGDZ128rmbi,   TB_BCAST_D },
-  { X86::VPTERNLOGDZ256rri,    X86::VPTERNLOGDZ256rmbi,   TB_BCAST_D },
-  { X86::VPTERNLOGDZrri,       X86::VPTERNLOGDZrmbi,      TB_BCAST_D },
-  { X86::VPTERNLOGQZ128rri,    X86::VPTERNLOGQZ128rmbi,   TB_BCAST_Q },
-  { X86::VPTERNLOGQZ256rri,    X86::VPTERNLOGQZ256rmbi,   TB_BCAST_Q },
-  { X86::VPTERNLOGQZrri,       X86::VPTERNLOGQZrmbi,      TB_BCAST_Q },
-  { X86::VPXORDZ128rrkz,       X86::VPXORDZ128rmbkz,      TB_BCAST_D },
-  { X86::VPXORDZ256rrkz,       X86::VPXORDZ256rmbkz,      TB_BCAST_D },
-  { X86::VPXORDZrrkz,          X86::VPXORDZrmbkz,         TB_BCAST_D },
-  { X86::VPXORQZ128rrkz,       X86::VPXORQZ128rmbkz,      TB_BCAST_Q },
-  { X86::VPXORQZ256rrkz,       X86::VPXORQZ256rmbkz,      TB_BCAST_Q },
-  { X86::VPXORQZrrkz,          X86::VPXORQZrmbkz,         TB_BCAST_Q },
-  { X86::VXORPDZ128rrkz,       X86::VXORPDZ128rmbkz,      TB_BCAST_SD },
-  { X86::VXORPDZ256rrkz,       X86::VXORPDZ256rmbkz,      TB_BCAST_SD },
-  { X86::VXORPDZrrkz,          X86::VXORPDZrmbkz,         TB_BCAST_SD },
-  { X86::VXORPSZ128rrkz,       X86::VXORPSZ128rmbkz,      TB_BCAST_SS },
-  { X86::VXORPSZ256rrkz,       X86::VXORPSZ256rmbkz,      TB_BCAST_SS },
-  { X86::VXORPSZrrkz,          X86::VXORPSZrmbkz,         TB_BCAST_SS },
+    {X86::VFMADD132PDZ128r, X86::VFMADD132PDZ128mb, TB_BCAST_SD},
+    {X86::VFMADD132PDZ256r, X86::VFMADD132PDZ256mb, TB_BCAST_SD},
+    {X86::VFMADD132PDZr, X86::VFMADD132PDZmb, TB_BCAST_SD},
+    {X86::VFMADD132PSZ128r, X86::VFMADD132PSZ128mb, TB_BCAST_SS},
+    {X86::VFMADD132PSZ256r, X86::VFMADD132PSZ256mb, TB_BCAST_SS},
+    {X86::VFMADD132PSZr, X86::VFMADD132PSZmb, TB_BCAST_SS},
+    {X86::VFMADD213PDZ128r, X86::VFMADD213PDZ128mb, TB_BCAST_SD},
+    {X86::VFMADD213PDZ256r, X86::VFMADD213PDZ256mb, TB_BCAST_SD},
+    {X86::VFMADD213PDZr, X86::VFMADD213PDZmb, TB_BCAST_SD},
+    {X86::VFMADD213PSZ128r, X86::VFMADD213PSZ128mb, TB_BCAST_SS},
+    {X86::VFMADD213PSZ256r, X86::VFMADD213PSZ256mb, TB_BCAST_SS},
+    {X86::VFMADD213PSZr, X86::VFMADD213PSZmb, TB_BCAST_SS},
+    {X86::VFMADD231PDZ128r, X86::VFMADD231PDZ128mb, TB_BCAST_SD},
+    {X86::VFMADD231PDZ256r, X86::VFMADD231PDZ256mb, TB_BCAST_SD},
+    {X86::VFMADD231PDZr, X86::VFMADD231PDZmb, TB_BCAST_SD},
+    {X86::VFMADD231PSZ128r, X86::VFMADD231PSZ128mb, TB_BCAST_SS},
+    {X86::VFMADD231PSZ256r, X86::VFMADD231PSZ256mb, TB_BCAST_SS},
+    {X86::VFMADD231PSZr, X86::VFMADD231PSZmb, TB_BCAST_SS},
+    {X86::VFMADDSUB132PDZ128r, X86::VFMADDSUB132PDZ128mb, TB_BCAST_SD},
+    {X86::VFMADDSUB132PDZ256r, X86::VFMADDSUB132PDZ256mb, TB_BCAST_SD},
+    {X86::VFMADDSUB132PDZr, X86::VFMADDSUB132PDZmb, TB_BCAST_SD},
+    {X86::VFMADDSUB132PSZ128r, X86::VFMADDSUB132PSZ128mb, TB_BCAST_SS},
+    {X86::VFMADDSUB132PSZ256r, X86::VFMADDSUB132PSZ256mb, TB_BCAST_SS},
+    {X86::VFMADDSUB132PSZr, X86::VFMADDSUB132PSZmb, TB_BCAST_SS},
+    {X86::VFMADDSUB213PDZ128r, X86::VFMADDSUB213PDZ128mb, TB_BCAST_SD},
+    {X86::VFMADDSUB213PDZ256r, X86::VFMADDSUB213PDZ256mb, TB_BCAST_SD},
+    {X86::VFMADDSUB213PDZr, X86::VFMADDSUB213PDZmb, TB_BCAST_SD},
+    {X86::VFMADDSUB213PSZ128r, X86::VFMADDSUB213PSZ128mb, TB_BCAST_SS},
+    {X86::VFMADDSUB213PSZ256r, X86::VFMADDSUB213PSZ256mb, TB_BCAST_SS},
+    {X86::VFMADDSUB213PSZr, X86::VFMADDSUB213PSZmb, TB_BCAST_SS},
+    {X86::VFMADDSUB231PDZ128r, X86::VFMADDSUB231PDZ128mb, TB_BCAST_SD},
+    {X86::VFMADDSUB231PDZ256r, X86::VFMADDSUB231PDZ256mb, TB_BCAST_SD},
+    {X86::VFMADDSUB231PDZr, X86::VFMADDSUB231PDZmb, TB_BCAST_SD},
+    {X86::VFMADDSUB231PSZ128r, X86::VFMADDSUB231PSZ128mb, TB_BCAST_SS},
+    {X86::VFMADDSUB231PSZ256r, X86::VFMADDSUB231PSZ256mb, TB_BCAST_SS},
+    {X86::VFMADDSUB231PSZr, X86::VFMADDSUB231PSZmb, TB_BCAST_SS},
+    {X86::VFMSUB132PDZ128r, X86::VFMSUB132PDZ128mb, TB_BCAST_SD},
+    {X86::VFMSUB132PDZ256r, X86::VFMSUB132PDZ256mb, TB_BCAST_SD},
+    {X86::VFMSUB132PDZr, X86::VFMSUB132PDZmb, TB_BCAST_SD},
+    {X86::VFMSUB132PSZ128r, X86::VFMSUB132PSZ128mb, TB_BCAST_SS},
+    {X86::VFMSUB132PSZ256r, X86::VFMSUB132PSZ256mb, TB_BCAST_SS},
+    {X86::VFMSUB132PSZr, X86::VFMSUB132PSZmb, TB_BCAST_SS},
+    {X86::VFMSUB213PDZ128r, X86::VFMSUB213PDZ128mb, TB_BCAST_SD},
+    {X86::VFMSUB213PDZ256r, X86::VFMSUB213PDZ256mb, TB_BCAST_SD},
+    {X86::VFMSUB213PDZr, X86::VFMSUB213PDZmb, TB_BCAST_SD},
+    {X86::VFMSUB213PSZ128r, X86::VFMSUB213PSZ128mb, TB_BCAST_SS},
+    {X86::VFMSUB213PSZ256r, X86::VFMSUB213PSZ256mb, TB_BCAST_SS},
+    {X86::VFMSUB213PSZr, X86::VFMSUB213PSZmb, TB_BCAST_SS},
+    {X86::VFMSUB231PDZ128r, X86::VFMSUB231PDZ128mb, TB_BCAST_SD},
+    {X86::VFMSUB231PDZ256r, X86::VFMSUB231PDZ256mb, TB_BCAST_SD},
+    {X86::VFMSUB231PDZr, X86::VFMSUB231PDZmb, TB_BCAST_SD},
+    {X86::VFMSUB231PSZ128r, X86::VFMSUB231PSZ128mb, TB_BCAST_SS},
+    {X86::VFMSUB231PSZ256r, X86::VFMSUB231PSZ256mb, TB_BCAST_SS},
+    {X86::VFMSUB231PSZr, X86::VFMSUB231PSZmb, TB_BCAST_SS},
+    {X86::VFMSUBADD132PDZ128r, X86::VFMSUBADD132PDZ128mb, TB_BCAST_SD},
+    {X86::VFMSUBADD132PDZ256r, X86::VFMSUBADD132PDZ256mb, TB_BCAST_SD},
+    {X86::VFMSUBADD132PDZr, X86::VFMSUBADD132PDZmb, TB_BCAST_SD},
+    {X86::VFMSUBADD132PSZ128r, X86::VFMSUBADD132PSZ128mb, TB_BCAST_SS},
+    {X86::VFMSUBADD132PSZ256r, X86::VFMSUBADD132PSZ256mb, TB_BCAST_SS},
+    {X86::VFMSUBADD132PSZr, X86::VFMSUBADD132PSZmb, TB_BCAST_SS},
+    {X86::VFMSUBADD213PDZ128r, X86::VFMSUBADD213PDZ128mb, TB_BCAST_SD},
+    {X86::VFMSUBADD213PDZ256r, X86::VFMSUBADD213PDZ256mb, TB_BCAST_SD},
+    {X86::VFMSUBADD213PDZr, X86::VFMSUBADD213PDZmb, TB_BCAST_SD},
+    {X86::VFMSUBADD213PSZ128r, X86::VFMSUBADD213PSZ128mb, TB_BCAST_SS},
+    {X86::VFMSUBADD213PSZ256r, X86::VFMSUBADD213PSZ256mb, TB_BCAST_SS},
+    {X86::VFMSUBADD213PSZr, X86::VFMSUBADD213PSZmb, TB_BCAST_SS},
+    {X86::VFMSUBADD231PDZ128r, X86::VFMSUBADD231PDZ128mb, TB_BCAST_SD},
+    {X86::VFMSUBADD231PDZ256r, X86::VFMSUBADD231PDZ256mb, TB_BCAST_SD},
+    {X86::VFMSUBADD231PDZr, X86::VFMSUBADD231PDZmb, TB_BCAST_SD},
+    {X86::VFMSUBADD231PSZ128r, X86::VFMSUBADD231PSZ128mb, TB_BCAST_SS},
+    {X86::VFMSUBADD231PSZ256r, X86::VFMSUBADD231PSZ256mb, TB_BCAST_SS},
+    {X86::VFMSUBADD231PSZr, X86::VFMSUBADD231PSZmb, TB_BCAST_SS},
+    {X86::VFNMADD132PDZ128r, X86::VFNMADD132PDZ128mb, TB_BCAST_SD},
+    {X86::VFNMADD132PDZ256r, X86::VFNMADD132PDZ256mb, TB_BCAST_SD},
+    {X86::VFNMADD132PDZr, X86::VFNMADD132PDZmb, TB_BCAST_SD},
+    {X86::VFNMADD132PSZ128r, X86::VFNMADD132PSZ128mb, TB_BCAST_SS},
+    {X86::VFNMADD132PSZ256r, X86::VFNMADD132PSZ256mb, TB_BCAST_SS},
+    {X86::VFNMADD132PSZr, X86::VFNMADD132PSZmb, TB_BCAST_SS},
+    {X86::VFNMADD213PDZ128r, X86::VFNMADD213PDZ128mb, TB_BCAST_SD},
+    {X86::VFNMADD213PDZ256r, X86::VFNMADD213PDZ256mb, TB_BCAST_SD},
+    {X86::VFNMADD213PDZr, X86::VFNMADD213PDZmb, TB_BCAST_SD},
+    {X86::VFNMADD213PSZ128r, X86::VFNMADD213PSZ128mb, TB_BCAST_SS},
+    {X86::VFNMADD213PSZ256r, X86::VFNMADD213PSZ256mb, TB_BCAST_SS},
+    {X86::VFNMADD213PSZr, X86::VFNMADD213PSZmb, TB_BCAST_SS},
+    {X86::VFNMADD231PDZ128r, X86::VFNMADD231PDZ128mb, TB_BCAST_SD},
+    {X86::VFNMADD231PDZ256r, X86::VFNMADD231PDZ256mb, TB_BCAST_SD},
+    {X86::VFNMADD231PDZr, X86::VFNMADD231PDZmb, TB_BCAST_SD},
+    {X86::VFNMADD231PSZ128r, X86::VFNMADD231PSZ128mb, TB_BCAST_SS},
+    {X86::VFNMADD231PSZ256r, X86::VFNMADD231PSZ256mb, TB_BCAST_SS},
+    {X86::VFNMADD231PSZr, X86::VFNMADD231PSZmb, TB_BCAST_SS},
+    {X86::VFNMSUB132PDZ128r, X86::VFNMSUB132PDZ128mb, TB_BCAST_SD},
+    {X86::VFNMSUB132PDZ256r, X86::VFNMSUB132PDZ256mb, TB_BCAST_SD},
+    {X86::VFNMSUB132PDZr, X86::VFNMSUB132PDZmb, TB_BCAST_SD},
+    {X86::VFNMSUB132PSZ128r, X86::VFNMSUB132PSZ128mb, TB_BCAST_SS},
+    {X86::VFNMSUB132PSZ256r, X86::VFNMSUB132PSZ256mb, TB_BCAST_SS},
+    {X86::VFNMSUB132PSZr, X86::VFNMSUB132PSZmb, TB_BCAST_SS},
+    {X86::VFNMSUB213PDZ128r, X86::VFNMSUB213PDZ128mb, TB_BCAST_SD},
+    {X86::VFNMSUB213PDZ256r, X86::VFNMSUB213PDZ256mb, TB_BCAST_SD},
+    {X86::VFNMSUB213PDZr, X86::VFNMSUB213PDZmb, TB_BCAST_SD},
+    {X86::VFNMSUB213PSZ128r, X86::VFNMSUB213PSZ128mb, TB_BCAST_SS},
+    {X86::VFNMSUB213PSZ256r, X86::VFNMSUB213PSZ256mb, TB_BCAST_SS},
+    {X86::VFNMSUB213PSZr, X86::VFNMSUB213PSZmb, TB_BCAST_SS},
+    {X86::VFNMSUB231PDZ128r, X86::VFNMSUB231PDZ128mb, TB_BCAST_SD},
+    {X86::VFNMSUB231PDZ256r, X86::VFNMSUB231PDZ256mb, TB_BCAST_SD},
+    {X86::VFNMSUB231PDZr, X86::VFNMSUB231PDZmb, TB_BCAST_SD},
+    {X86::VFNMSUB231PSZ128r, X86::VFNMSUB231PSZ128mb, TB_BCAST_SS},
+    {X86::VFNMSUB231PSZ256r, X86::VFNMSUB231PSZ256mb, TB_BCAST_SS},
+    {X86::VFNMSUB231PSZr, X86::VFNMSUB231PSZmb, TB_BCAST_SS},
+    {X86::VPADDDZ128rrkz, X86::VPADDDZ128rmbkz, TB_BCAST_D},
+    {X86::VPADDDZ256rrkz, X86::VPADDDZ256rmbkz, TB_BCAST_D},
+    {X86::VPADDDZrrkz, X86::VPADDDZrmbkz, TB_BCAST_D},
+    {X86::VPADDQZ128rrkz, X86::VPADDQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPADDQZ256rrkz, X86::VPADDQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPADDQZrrkz, X86::VPADDQZrmbkz, TB_BCAST_Q},
+    {X86::VPANDDZ128rrkz, X86::VPANDDZ128rmbkz, TB_BCAST_D},
+    {X86::VPANDDZ256rrkz, X86::VPANDDZ256rmbkz, TB_BCAST_D},
+    {X86::VPANDDZrrkz, X86::VPANDDZrmbkz, TB_BCAST_D},
+    {X86::VPANDQZ128rrkz, X86::VPANDQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPANDQZ256rrkz, X86::VPANDQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPANDQZrrkz, X86::VPANDQZrmbkz, TB_BCAST_Q},
+    {X86::VPMULDQZ128rrkz, X86::VPMULDQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPMULDQZ256rrkz, X86::VPMULDQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPMULDQZrrkz, X86::VPMULDQZrmbkz, TB_BCAST_Q},
+    {X86::VPMULLDZ128rrkz, X86::VPMULLDZ128rmbkz, TB_BCAST_D},
+    {X86::VPMULLDZ256rrkz, X86::VPMULLDZ256rmbkz, TB_BCAST_D},
+    {X86::VPMULLDZrrkz, X86::VPMULLDZrmbkz, TB_BCAST_D},
+    {X86::VPMULLQZ128rrkz, X86::VPMULLQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPMULLQZ256rrkz, X86::VPMULLQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPMULLQZrrkz, X86::VPMULLQZrmbkz, TB_BCAST_Q},
+    {X86::VPMULUDQZ128rrkz, X86::VPMULUDQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPMULUDQZ256rrkz, X86::VPMULUDQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPMULUDQZrrkz, X86::VPMULUDQZrmbkz, TB_BCAST_Q},
+    {X86::VPORDZ128rrkz, X86::VPORDZ128rmbkz, TB_BCAST_D},
+    {X86::VPORDZ256rrkz, X86::VPORDZ256rmbkz, TB_BCAST_D},
+    {X86::VPORDZrrkz, X86::VPORDZrmbkz, TB_BCAST_D},
+    {X86::VPORQZ128rrkz, X86::VPORQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPORQZ256rrkz, X86::VPORQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPORQZrrkz, X86::VPORQZrmbkz, TB_BCAST_Q},
+    {X86::VPSUBDZ128rrkz, X86::VPSUBDZ128rmbkz, TB_BCAST_D},
+    {X86::VPSUBDZ256rrkz, X86::VPSUBDZ256rmbkz, TB_BCAST_D},
+    {X86::VPSUBDZrrkz, X86::VPSUBDZrmbkz, TB_BCAST_D},
+    {X86::VPSUBQZ128rrkz, X86::VPSUBQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPSUBQZ256rrkz, X86::VPSUBQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPSUBQZrrkz, X86::VPSUBQZrmbkz, TB_BCAST_Q},
+    {X86::VPTERNLOGDZ128rri, X86::VPTERNLOGDZ128rmbi, TB_BCAST_D},
+    {X86::VPTERNLOGDZ256rri, X86::VPTERNLOGDZ256rmbi, TB_BCAST_D},
+    {X86::VPTERNLOGDZrri, X86::VPTERNLOGDZrmbi, TB_BCAST_D},
+    {X86::VPTERNLOGQZ128rri, X86::VPTERNLOGQZ128rmbi, TB_BCAST_Q},
+    {X86::VPTERNLOGQZ256rri, X86::VPTERNLOGQZ256rmbi, TB_BCAST_Q},
+    {X86::VPTERNLOGQZrri, X86::VPTERNLOGQZrmbi, TB_BCAST_Q},
+    {X86::VPXORDZ128rrkz, X86::VPXORDZ128rmbkz, TB_BCAST_D},
+    {X86::VPXORDZ256rrkz, X86::VPXORDZ256rmbkz, TB_BCAST_D},
+    {X86::VPXORDZrrkz, X86::VPXORDZrmbkz, TB_BCAST_D},
+    {X86::VPXORQZ128rrkz, X86::VPXORQZ128rmbkz, TB_BCAST_Q},
+    {X86::VPXORQZ256rrkz, X86::VPXORQZ256rmbkz, TB_BCAST_Q},
+    {X86::VPXORQZrrkz, X86::VPXORQZrmbkz, TB_BCAST_Q},
+    {X86::VXORPDZ128rrkz, X86::VXORPDZ128rmbkz, TB_BCAST_SD},
+    {X86::VXORPDZ256rrkz, X86::VXORPDZ256rmbkz, TB_BCAST_SD},
+    {X86::VXORPDZrrkz, X86::VXORPDZrmbkz, TB_BCAST_SD},
+    {X86::VXORPSZ128rrkz, X86::VXORPSZ128rmbkz, TB_BCAST_SS},
+    {X86::VXORPSZ256rrkz, X86::VXORPSZ256rmbkz, TB_BCAST_SS},
+    {X86::VXORPSZrrkz, X86::VXORPSZrmbkz, TB_BCAST_SS},
 };
 
 static const X86MemoryFoldTableEntry BroadcastFoldTable4[] = {
-  { X86::VPADDDZ128rrk,        X86::VPADDDZ128rmbk,       TB_BCAST_D },
-  { X86::VPADDDZ256rrk,        X86::VPADDDZ256rmbk,       TB_BCAST_D },
-  { X86::VPADDDZrrk,           X86::VPADDDZrmbk,          TB_BCAST_D },
-  { X86::VPADDQZ128rrk,        X86::VPADDQZ128rmbk,       TB_BCAST_Q },
-  { X86::VPADDQZ256rrk,        X86::VPADDQZ256rmbk,       TB_BCAST_Q },
-  { X86::VPADDQZrrk,           X86::VPADDQZrmbk,          TB_BCAST_Q },
-  { X86::VPANDDZ128rrk,        X86::VPANDDZ128rmbk,       TB_BCAST_D },
-  { X86::VPANDDZ256rrk,        X86::VPANDDZ256rmbk,       TB_BCAST_D },
-  { X86::VPANDDZrrk,           X86::VPANDDZrmbk,          TB_BCAST_D },
-  { X86::VPANDQZ128rrk,        X86::VPANDQZ128rmbk,       TB_BCAST_Q },
-  { X86::VPANDQZ256rrk,        X86::VPANDQZ256rmbk,       TB_BCAST_Q },
-  { X86::VPANDQZrrk,           X86::VPANDQZrmbk,          TB_BCAST_Q },
-  { X86::VPMULDQZ128rrk,       X86::VPMULDQZ128rmbk,      TB_BCAST_Q },
-  { X86::VPMULDQZ256rrk,       X86::VPMULDQZ256rmbk,      TB_BCAST_Q },
-  { X86::VPMULDQZrrk,          X86::VPMULDQZrmbk,         TB_BCAST_Q },
-  { X86::VPMULLDZ128rrk,       X86::VPMULLDZ128rmbk,      TB_BCAST_D },
-  { X86::VPMULLDZ256rrk,       X86::VPMULLDZ256rmbk,      TB_BCAST_D },
-  { X86::VPMULLDZrrk,          X86::VPMULLDZrmbk,         TB_BCAST_D },
-  { X86::VPMULLQZ128rrk,       X86::VPMULLQZ128rmbk,      TB_BCAST_Q },
-  { X86::VPMULLQZ256rrk,       X86::VPMULLQZ256rmbk,      TB_BCAST_Q },
-  { X86::VPMULLQZrrk,          X86::VPMULLQZrmbk,         TB_BCAST_Q },
-  { X86::VPMULUDQZ128rrk,      X86::VPMULUDQZ128rmbk,     TB_BCAST_Q },
-  { X86::VPMULUDQZ256rrk,      X86::VPMULUDQZ256rmbk,     TB_BCAST_Q },
-  { X86::VPMULUDQZrrk,         X86::VPMULUDQZrmbk,        TB_BCAST_Q },
-  { X86::VPORDZ128rrk,         X86::VPORDZ128rmbk,        TB_BCAST_D },
-  { X86::VPORDZ256rrk,         X86::VPORDZ256rmbk,        TB_BCAST_D },
-  { X86::VPORDZrrk,            X86::VPORDZrmbk,           TB_BCAST_D },
-  { X86::VPORQZ128rrk,         X86::VPORQZ128rmbk,        TB_BCAST_Q },
-  { X86::VPORQZ256rrk,         X86::VPORQZ256rmbk,        TB_BCAST_Q },
-  { X86::VPORQZrrk,            X86::VPORQZrmbk,           TB_BCAST_Q },
-  { X86::VPSUBDZ128rrk,        X86::VPSUBDZ128rmbk,       TB_BCAST_D },
-  { X86::VPSUBDZ256rrk,        X86::VPSUBDZ256rmbk,       TB_BCAST_D },
-  { X86::VPSUBDZrrk,           X86::VPSUBDZrmbk,          TB_BCAST_D },
-  { X86::VPSUBQZ128rrk,        X86::VPSUBQZ128rmbk,       TB_BCAST_Q },
-  { X86::VPSUBQZ256rrk,        X86::VPSUBQZ256rmbk,       TB_BCAST_Q },
-  { X86::VPSUBQZrrk,           X86::VPSUBQZrmbk,          TB_BCAST_Q },
-  { X86::VPXORDZ128rrk,        X86::VPXORDZ128rmbk,       TB_BCAST_D },
-  { X86::VPXORDZ256rrk,        X86::VPXORDZ256rmbk,       TB_BCAST_D },
-  { X86::VPXORDZrrk,           X86::VPXORDZrmbk,          TB_BCAST_D },
-  { X86::VPXORQZ128rrk,        X86::VPXORQZ128rmbk,       TB_BCAST_Q },
-  { X86::VPXORQZ256rrk,        X86::VPXORQZ256rmbk,       TB_BCAST_Q },
-  { X86::VPXORQZrrk,           X86::VPXORQZrmbk,          TB_BCAST_Q },
-  { X86::VXORPDZ128rrk,        X86::VXORPDZ128rmbk,       TB_BCAST_SD },
-  { X86::VXORPDZ256rrk,        X86::VXORPDZ256rmbk,       TB_BCAST_SD },
-  { X86::VXORPDZrrk,           X86::VXORPDZrmbk,          TB_BCAST_SD },
-  { X86::VXORPSZ128rrk,        X86::VXORPSZ128rmbk,       TB_BCAST_SS },
-  { X86::VXORPSZ256rrk,        X86::VXORPSZ256rmbk,       TB_BCAST_SS },
-  { X86::VXORPSZrrk,           X86::VXORPSZrmbk,          TB_BCAST_SS },
+    {X86::VPADDDZ128rrk, X86::VPADDDZ128rmbk, TB_BCAST_D},
+    {X86::VPADDDZ256rrk, X86::VPADDDZ256rmbk, TB_BCAST_D},
+    {X86::VPADDDZrrk, X86::VPADDDZrmbk, TB_BCAST_D},
+    {X86::VPADDQZ128rrk, X86::VPADDQZ128rmbk, TB_BCAST_Q},
+    {X86::VPADDQZ256rrk, X86::VPADDQZ256rmbk, TB_BCAST_Q},
+    {X86::VPADDQZrrk, X86::VPADDQZrmbk, TB_BCAST_Q},
+    {X86::VPANDDZ128rrk, X86::VPANDDZ128rmbk, TB_BCAST_D},
+    {X86::VPANDDZ256rrk, X86::VPANDDZ256rmbk, TB_BCAST_D},
+    {X86::VPANDDZrrk, X86::VPANDDZrmbk, TB_BCAST_D},
+    {X86::VPANDQZ128rrk, X86::VPANDQZ128rmbk, TB_BCAST_Q},
+    {X86::VPANDQZ256rrk, X86::VPANDQZ256rmbk, TB_BCAST_Q},
+    {X86::VPANDQZrrk, X86::VPANDQZrmbk, TB_BCAST_Q},
+    {X86::VPMULDQZ128rrk, X86::VPMULDQZ128rmbk, TB_BCAST_Q},
+    {X86::VPMULDQZ256rrk, X86::VPMULDQZ256rmbk, TB_BCAST_Q},
+    {X86::VPMULDQZrrk, X86::VPMULDQZrmbk, TB_BCAST_Q},
+    {X86::VPMULLDZ128rrk, X86::VPMULLDZ128rmbk, TB_BCAST_D},
+    {X86::VPMULLDZ256rrk, X86::VPMULLDZ256rmbk, TB_BCAST_D},
+    {X86::VPMULLDZrrk, X86::VPMULLDZrmbk, TB_BCAST_D},
+    {X86::VPMULLQZ128rrk, X86::VPMULLQZ128rmbk, TB_BCAST_Q},
+    {X86::VPMULLQZ256rrk, X86::VPMULLQZ256rmbk, TB_BCAST_Q},
+    {X86::VPMULLQZrrk, X86::VPMULLQZrmbk, TB_BCAST_Q},
+    {X86::VPMULUDQZ128rrk, X86::VPMULUDQZ128rmbk, TB_BCAST_Q},
+    {X86::VPMULUDQZ256rrk, X86::VPMULUDQZ256rmbk, TB_BCAST_Q},
+    {X86::VPMULUDQZrrk, X86::VPMULUDQZrmbk, TB_BCAST_Q},
+    {X86::VPORDZ128rrk, X86::VPORDZ128rmbk, TB_BCAST_D},
+    {X86::VPORDZ256rrk, X86::VPORDZ256rmbk, TB_BCAST_D},
+    {X86::VPORDZrrk, X86::VPORDZrmbk, TB_BCAST_D},
+    {X86::VPORQZ128rrk, X86::VPORQZ128rmbk, TB_BCAST_Q},
+    {X86::VPORQZ256rrk, X86::VPORQZ256rmbk, TB_BCAST_Q},
+    {X86::VPORQZrrk, X86::VPORQZrmbk, TB_BCAST_Q},
+    {X86::VPSUBDZ128rrk, X86::VPSUBDZ128rmbk, TB_BCAST_D},
+    {X86::VPSUBDZ256rrk, X86::VPSUBDZ256rmbk, TB_BCAST_D},
+    {X86::VPSUBDZrrk, X86::VPSUBDZrmbk, TB_BCAST_D},
+    {X86::VPSUBQZ128rrk, X86::VPSUBQZ128rmbk, TB_BCAST_Q},
+    {X86::VPSUBQZ256rrk, X86::VPSUBQZ256rmbk, TB_BCAST_Q},
+    {X86::VPSUBQZrrk, X86::VPSUBQZrmbk, TB_BCAST_Q},
+    {X86::VPXORDZ128rrk, X86::VPXORDZ128rmbk, TB_BCAST_D},
+    {X86::VPXORDZ256rrk, X86::VPXORDZ256rmbk, TB_BCAST_D},
+    {X86::VPXORDZrrk, X86::VPXORDZrmbk, TB_BCAST_D},
+    {X86::VPXORQZ128rrk, X86::VPXORQZ128rmbk, TB_BCAST_Q},
+    {X86::VPXORQZ256rrk, X86::VPXORQZ256rmbk, TB_BCAST_Q},
+    {X86::VPXORQZrrk, X86::VPXORQZrmbk, TB_BCAST_Q},
+    {X86::VXORPDZ128rrk, X86::VXORPDZ128rmbk, TB_BCAST_SD},
+    {X86::VXORPDZ256rrk, X86::VXORPDZ256rmbk, TB_BCAST_SD},
+    {X86::VXORPDZrrk, X86::VXORPDZrmbk, TB_BCAST_SD},
+    {X86::VXORPSZ128rrk, X86::VXORPSZ128rmbk, TB_BCAST_SS},
+    {X86::VXORPSZ256rrk, X86::VXORPSZ256rmbk, TB_BCAST_SS},
+    {X86::VXORPSZrrk, X86::VXORPSZrmbk, TB_BCAST_SS},
 };
 
 // Table to map instructions safe to broadcast using a different width from the

``````````

</details>


https://github.com/llvm/llvm-project/pull/73509


More information about the llvm-commits mailing list