[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