[llvm] [AMDGPU][True16] Fix MadMix selection (PR #205431)

Petar Avramovic via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 31 06:13:30 PDT 2026


================
@@ -7244,12 +7277,19 @@ AMDGPUInstructionSelector::selectVOP3PMadMixModsExt(
   Register Src;
   unsigned Mods;
   bool Matched;
-  std::tie(Src, Mods) = selectVOP3PMadMixModsImpl(Root, Matched);
+  bool NeedsWiden;
+  std::tie(Src, Mods) = selectVOP3PMadMixModsImpl(Root, Matched, NeedsWiden);
   if (!Matched)
     return {};
 
+  MachineRegisterInfo *RegInfo = MRI;
   return {{
-      [=](MachineInstrBuilder &MIB) { MIB.addReg(Src); },
+      [=](MachineInstrBuilder &MIB) {
+        Register Reg = Src;
+        if (NeedsWiden)
+          Reg = createVOP3PSrc32FromLo16(Src, MIB.getInstr(), *RegInfo);
----------------
petar-avramovic wrote:

this still creates instruction in complex pattern cpp, complex pattern should match not create new instructions

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


More information about the llvm-commits mailing list