[llvm] [Reland][X86] Remove redundant `cmp` before `adc` after `lzcnt` or `tzcnt` (PR #210069)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 20 09:02:06 PDT 2026


================
@@ -5619,6 +5647,19 @@ bool X86InstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
       ShouldUpdateCC = true;
     }
 
+    if (LTZCNTInst) {
+      unsigned InstCode = Instr.getOpcode();
+      bool UsesOnlyCF = X86::isADC(InstCode) || X86::isSBB(InstCode) ||
+                        X86::isRCL(InstCode) || X86::isRCR(InstCode) ||
+                        OldCC == X86::COND_B || OldCC == X86::COND_AE;
+      if (!UsesOnlyCF)
+        return false;
+
+      MI = LTZCNTInst;
+      FlagsMayLiveOut = false;
----------------
phoebewang wrote:

Why set it false?

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


More information about the llvm-commits mailing list