@@ -2084,6 +2084,9 @@ multiclass VOP3_Realtriple_gfx11_gfx12<bits<10> op> :
20842084multiclass VOP3_Real_Base_gfx11_gfx12<bits<10> op> :
20852085 VOP3_Real_Base<GFX11Gen, op>, VOP3_Real_Base<GFX12Gen, op>;
20862086
2087+ multiclass VOP3_Real_Base_gfx11_gfx12_not_gfx1250<bits<10> op> :
2088+ VOP3_Real_Base<GFX11Gen, op>, VOP3_Real_Base<GFX12Not12_50Gen, op>;
2089+
20872090multiclass VOP3_Realtriple_with_name_gfx11_gfx12<bits<10> op, string opName,
20882091 string asmName> :
20892092 VOP3_Realtriple_with_name<GFX11Gen, op, opName, asmName>,
@@ -2211,9 +2214,9 @@ defm V_MUL_F64 : VOP3_Real_Base_gfx11<0x328>;
22112214defm V_MIN_F64 : VOP3_Real_Base_gfx11<0x329>;
22122215defm V_MAX_F64 : VOP3_Real_Base_gfx11<0x32a>;
22132216defm V_LDEXP_F64 : VOP3_Real_Base_gfx11_gfx12<0x32b>;
2214- defm V_MUL_LO_U32 : VOP3_Real_Base_gfx11_gfx12 <0x32c>;
2215- defm V_MUL_HI_U32 : VOP3_Real_Base_gfx11_gfx12 <0x32d>;
2216- defm V_MUL_HI_I32 : VOP3_Real_Base_gfx11_gfx12 <0x32e>;
2217+ defm V_MUL_LO_U32 : VOP3_Real_Base_gfx11_gfx12_not_gfx1250 <0x32c>;
2218+ defm V_MUL_HI_U32 : VOP3_Real_Base_gfx11_gfx12_not_gfx1250 <0x32d>;
2219+ defm V_MUL_HI_I32 : VOP3_Real_Base_gfx11_gfx12_not_gfx1250 <0x32e>;
22172220defm V_TRIG_PREOP_F64 : VOP3_Real_Base_gfx11_gfx12<0x32f>;
22182221defm V_LSHLREV_B16 : VOP3Only_Realtriple_t16_and_fake16_gfx11_gfx12<0x338, "v_lshlrev_b16">;
22192222defm V_LSHRREV_B16 : VOP3Only_Realtriple_t16_and_fake16_gfx11_gfx12<0x339, "v_lshrrev_b16">;
@@ -2242,6 +2245,10 @@ let AssemblerPredicate = isGFX11Plus in {
22422245}
22432246
22442247// These instructions differ from GFX12 variant by supporting DPP:
2248+ defm V_MUL_LO_U32 : VOP3Only_Realtriple_gfx1250<0x32c>;
2249+ defm V_MUL_HI_U32 : VOP3Only_Realtriple_gfx1250<0x32d>;
2250+ defm V_MUL_HI_I32 : VOP3Only_Realtriple_gfx1250<0x32e>;
2251+
22452252defm V_PERM_PK16_B4_U4 : VOP3Only_Real_Base_gfx1250<0x23f>;
22462253defm V_PERM_PK16_B6_U4 : VOP3Only_Real_Base_gfx1250<0x242>;
22472254defm V_PERM_PK16_B8_U4 : VOP3Only_Real_Base_gfx1250<0x243>;
0 commit comments