[llvm] [X86] Support EVEX compression from MOVBErr to BSWAP (PR #79775)

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 29 02:33:38 PST 2024


================
@@ -225,8 +225,11 @@ static bool CompressEVEXImpl(MachineInstr &MI, const X86Subtarget &ST) {
   //
   // For AVX512 cases, EVEX prefix is needed in order to carry this information
   // thus preventing the transformation to VEX encoding.
-  bool IsND = X86II::hasNewDataDest(TSFlags);
-  if (TSFlags & X86II::EVEX_B)
+  // MOVBE*rr is special because it has semantic of NDD but not set EVEX_B.
+  bool IsMovberr =
+      MI.getOpcode() == X86::MOVBE32rr || MI.getOpcode() == X86::MOVBE64rr;
+  bool IsND = X86II::hasNewDataDest(TSFlags) || IsMovberr;
+  if (TSFlags & X86II::EVEX_B || IsMovberr)
----------------
RKSimon wrote:

Add brackets to avoid operator precedence warnings.

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


More information about the llvm-commits mailing list