[llvm] [AMDGPU][GlobalISel] Improve combining on v_ldexp (PR #190236)
Jasmine Tang via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 22 12:51:51 PDT 2026
================
@@ -150,6 +155,18 @@ Register AMDGPURegBankCombinerImpl::getAsVgpr(Register Reg) const {
return VgprReg;
}
+bool AMDGPURegBankCombinerImpl::matchFmulSelectToFldexpVgpr(
+ MachineInstr &MI, MachineInstr &Sel,
+ std::function<void(MachineIRBuilder &)> &MatchInfo) const {
+ // Only combine for VGPR (divergent) operands. SGPR operands benefit from
+ // keeping fmul which has an SALU form (S_FMUL), while fldexp does not.
+ Register Dst = MI.getOperand(0).getReg();
+ if (!isVgprRegBank(Dst))
+ return false;
+
+ return matchFmulWithSelectToFldexpImpl(MI, Sel, MatchInfo, MRI, TII);
----------------
badumbatish wrote:
fixed by checking regbank exists in matchFmulWithSelectToFldexpImpl before assigning, please let me know if this doesn't work out.
https://github.com/llvm/llvm-project/pull/190236
More information about the llvm-commits
mailing list