[llvm] [RISCV] Add bltu/bgeu zero => bnez/beqz canonicalisation to RISCVInstrInfo::simplifyInstruction (PR #141775)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed May 28 09:11:58 PDT 2025
================
@@ -4191,6 +4191,24 @@ bool RISCVInstrInfo::simplifyInstruction(MachineInstr &MI) const {
return true;
}
break;
+ case RISCV::BLTU:
+ // bltu zero, rs, imm => bne rs, zero, imm
+ if (MI.getOperand(0).getReg() == RISCV::X0) {
+ MachineOperand MO0 = MI.getOperand(0);
+ MI.removeOperand(0);
+ MI.insert(MI.operands_begin() + 1, {MO0});
+ MI.setDesc(get(RISCV::BNE));
+ }
+ break;
+ case RISCV::BGEU:
+ // bgeu zero, rs, imm => beq rs, zero, imm
----------------
topperc wrote:
`beq zero, zero, imm` isn't compressible. The first register needs to be x8-x15.
https://github.com/llvm/llvm-project/pull/141775
More information about the llvm-commits
mailing list