diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td index e74ccbee975ab..1350afad52781 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -2648,8 +2648,8 @@ class VOPProfile _ArgVT, bit _EnableClamp = 0> { // the asm operand name via this HasModifiers flag field string AsmDPP8 = getAsmDPP8.ret; field string AsmVOP3Base = getAsmVOP3Base.ret; + HasOpSel, HasOMod, IsVOP3P, HasNeg, HasSrc0FloatMods, HasSrc1FloatMods, + HasSrc2FloatMods, DstVT, HasFP8ByteSel, HasBitOp3>.ret; field string Asm64 = AsmVOP3Base; field string AsmVOP3P = getAsmVOP3P.ret; field string AsmVOP3OpSel = AsmVOP3Base; diff --git a/llvm/lib/Target/AMDGPU/VOP3Instructions.td b/llvm/lib/Target/AMDGPU/VOP3Instructions.td index f372101cb7b77..2dbc119f65cda 100644 --- a/llvm/lib/Target/AMDGPU/VOP3Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP3Instructions.td @@ -1126,6 +1126,9 @@ class VOP3_CVT_SCALEF32_PK_F864_Profile : VOP3_Profile

{ let HasModifiers = 0; let HasSrc0IntMods = 0; let HasSrc1IntMods = 0; + let HasSrc0FloatMods = 0; + let HasSrc1FloatMods = 0; + let HasSrc2FloatMods = 0; let HasOMod = 0; let HasOpSel = 0; let HasClamp = 0; @@ -1562,9 +1565,12 @@ let SubtargetPredicate = HasPseudoScalarTrans in { def : PseudoScalarPatF16; } +let HasModifiers = 1 in +def ASHR_PK_I8_Profile : VOP3_Profile; + let SubtargetPredicate = HasAshrPkInsts, isReMaterializable = 1 in { - defm V_ASHR_PK_I8_I32 : VOP3Inst<"v_ashr_pk_i8_i32", VOP3_Profile, int_amdgcn_ashr_pk_i8_i32>; - defm V_ASHR_PK_U8_I32 : VOP3Inst<"v_ashr_pk_u8_i32", VOP3_Profile, int_amdgcn_ashr_pk_u8_i32>; + defm V_ASHR_PK_I8_I32 : VOP3Inst<"v_ashr_pk_i8_i32", ASHR_PK_I8_Profile, int_amdgcn_ashr_pk_i8_i32>; + defm V_ASHR_PK_U8_I32 : VOP3Inst<"v_ashr_pk_u8_i32", ASHR_PK_I8_Profile, int_amdgcn_ashr_pk_u8_i32>; } // End SubtargetPredicate = HasAshrPkInsts, isReMaterializable = 1 class AshrPkI8Pat: GCNPat<