[llvm] [AMDGPU] Allow dpp in v_pk_fmac_f16 for GFX9 and GFX10 (PR #144782)

Jun Wang via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 24 10:26:03 PDT 2025


================
@@ -2172,6 +2175,7 @@ defm V_LDEXP_F16       : VOP2_Real_gfx10<0x03b>;
 let IsSingle = 1 in {
   defm V_PK_FMAC_F16     : VOP2_Real_e32_gfx10<0x03c>;
 }
+defm V_PK_FMAC_F16     :  VOP2_Real_dpp_dpp8_gfx10<0x03c>;
----------------
jwanggit86 wrote:

How about this:
```diff
-  multiclass VOP2_Real_dpp_dpp8_gfx10<bits<6> op> :
+  multiclass VOP2Only_Real_e32_gfx10<bits<6> op> {
+    let IsSingle = 1 in
+      defm NAME: VOP2_Real_e32_gfx10<op>;
+  }
+  multiclass VOP2_Real_e32_dpp_dpp8_gfx10<bits<6> op> :
+    VOP2Only_Real_e32_gfx10<op>,
     VOP2_Real_dpp_gfx10<op>,
     VOP2_Real_dpp8_gfx10<op>;

@@ -2171,11 +2176,7 @@ defm V_FMAAK_F16       : VOP2Only_Real_MADK_gfx10<0x038>;
 defm V_MAX_F16         : VOP2_Real_gfx10<0x039>;
 defm V_MIN_F16         : VOP2_Real_gfx10<0x03a>;
 defm V_LDEXP_F16       : VOP2_Real_gfx10<0x03b>;
-
-let IsSingle = 1 in {
-  defm V_PK_FMAC_F16     : VOP2_Real_e32_gfx10<0x03c>;
-}
-defm V_PK_FMAC_F16     :  VOP2_Real_dpp_dpp8_gfx10<0x03c>;
+defm V_PK_FMAC_F16     : VOP2_Real_e32_dpp_dpp8_gfx10<0x03c>;
```

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


More information about the llvm-commits mailing list