[llvm] [AMDGPU][GlobalISel] Improve combining on v_ldexp (PR #190236)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 23 04:25:55 PDT 2026


================
@@ -498,17 +502,29 @@ bool AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp(
   if (SelectFalseLog2Val == INT_MIN)
     return false;
 
-  MatchInfo = [=, &MI](MachineIRBuilder &Builder) {
+  MatchInfo = [=, &MI, &MRI](MachineIRBuilder &Builder) {
     LLT IntDestTy = DestTy.changeElementType(LLT::scalar(32));
     auto NewSel = Builder.buildSelect(
         IntDestTy, SelectCondReg,
         Builder.buildConstant(IntDestTy, SelectTrueLog2Val),
         Builder.buildConstant(IntDestTy, SelectFalseLog2Val));
 
+    const auto *RegBank = MRI.getRegBankOrNull(Dst);
+    if (RegBank) {
+      auto &MutMRI = Builder.getMF().getRegInfo();
+      MutMRI.setRegBank(NewSel.getReg(0), *RegBank);
+      MutMRI.setRegBank(NewSel->getOperand(2).getReg(), *RegBank);
+      MutMRI.setRegBank(NewSel->getOperand(3).getReg(), *RegBank);
+    }
+
     Register XReg = MI.getOperand(1).getReg();
     if (SelectTrueVal->isNegative()) {
       auto NegX =
           Builder.buildFNeg(DestTy, XReg, MRI.getVRegDef(XReg)->getFlags());
+      if (RegBank) {
+        auto &MutMRI = Builder.getMF().getRegInfo();
----------------
arsenm wrote:

Same 

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


More information about the llvm-commits mailing list