[llvm] Adding support for G_STRICT_FMA in new reg bank select (PR #170330)

Petar Avramovic via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 2 10:24:26 PST 2025


================
@@ -926,6 +930,18 @@ RegBankLegalizeRules::RegBankLegalizeRules(const GCNSubtarget &_ST,
   addRulesForGOpcs({G_READSTEADYCOUNTER, G_READCYCLECOUNTER}, Standard)
       .Uni(S64, {{Sgpr64}, {}});
 
+  addRulesForGOpcs({G_STRICT_FMA}, Standard)
+    .Uni(V2S16, {{UniInVgprV2S16}, {VgprV2S16, VgprV2S16, VgprV2S16}})
+    .Div(V2S16, {{VgprV2S16}, {VgprV2S16, VgprV2S16, VgprV2S16}})
+    .Any({{UniV2S32}, {{UniInVgprV2S32}, {VgprV2S32, VgprV2S32, VgprV2S32}}})
+    .Any({{DivV2S32}, {{VgprV2S32}, {VgprV2S32, VgprV2S32, VgprV2S32}}})
+    .Div(S16, {{Vgpr16}, {Vgpr16, Vgpr16, Vgpr16}})
+    .Div(S32, {{Vgpr32}, {Vgpr32, Vgpr32, Vgpr32}})
+    .Div(S64, {{Vgpr64}, {Vgpr64, Vgpr64, Vgpr64}})
+    .Uni(S16, {{UniInVgprS16}, {Vgpr16, Vgpr16, Vgpr16}})
+    .Uni(S32, {{UniInVgprS32}, {Vgpr32, Vgpr32, Vgpr32}}) 
----------------
petar-avramovic wrote:

gfx12 has f16 and f32 s_fmac, might be able to select it here

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


More information about the llvm-commits mailing list