[llvm] [AArch64] Adjust comparison constant if adjusting it means less instructions (PR #151024)

David Green via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 11 02:05:52 PDT 2025


================
@@ -656,14 +656,13 @@ tryAdjustICmpImmAndPred(Register RHS, CmpInst::Predicate P,
   if (isLegalArithImmed(C))
     return {{C, P}};
 
-  auto IsMaterializableInSingleInstruction = [=](uint64_t Imm) {
+  auto NumberOfInstrToLoadImm = [=](uint64_t Imm) {
     SmallVector<AArch64_IMM::ImmInsnModel> Insn;
     AArch64_IMM::expandMOVImm(Imm, 32, Insn);
-    return Insn.size() == 1;
+    return Insn.size();
   };
 
-  if (!IsMaterializableInSingleInstruction(OriginalC) &&
-      IsMaterializableInSingleInstruction(C))
+  if (NumberOfInstrToLoadImm(OriginalC) > NumberOfInstrToLoadImm(C))
----------------
davemgreen wrote:

Do you have any tests where gisel changes? The difference between 2 and 3?

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


More information about the llvm-commits mailing list