[llvm] [AArch64][GISel] Use emitIntegerCompare instead of emitting SUBS directly every time (PR #153659)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 14 12:49:31 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-aarch64
Author: AZero13 (AZero13)
<details>
<summary>Changes</summary>
Also, pass the same operands to it as we do in SelDAG, same with emitFPCompare.
---
Full diff: https://github.com/llvm/llvm-project/pull/153659.diff
1 Files Affected:
- (modified) llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (+2-4)
``````````diff
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
index ee34a85a5b507..691fabbd1ac67 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
@@ -4965,11 +4965,9 @@ MachineInstr *AArch64InstructionSelector::emitConjunctionRec(
// Produce a normal comparison if we are first in the chain
if (!CCOp) {
- auto Dst = MRI.cloneVirtualRegister(LHS);
if (isa<GICmp>(Cmp))
- return emitSUBS(Dst, Cmp->getOperand(2), Cmp->getOperand(3), MIB);
- return emitFPCompare(Cmp->getOperand(2).getReg(),
- Cmp->getOperand(3).getReg(), MIB);
+ return emitIntegerCompare(LHS, RHS, CC, MIB);
+ return emitFPCompare(LHS, RHS, MIB, CC);
}
// Otherwise produce a ccmp.
return emitConditionalComparison(LHS, RHS, CC, Predicate, OutCC, MIB);
``````````
</details>
https://github.com/llvm/llvm-project/pull/153659
More information about the llvm-commits
mailing list