@@ -2034,11 +2034,13 @@ class getInsVOP3P <RegisterOperand Src0RC, RegisterOperand Src1RC,
20342034class getInsVOP3OpSel <RegisterOperand Src0RC, RegisterOperand Src1RC,
20352035 RegisterOperand Src2RC, int NumSrcArgs,
20362036 bit HasClamp, bit HasOMod,
2037- Operand Src0Mod, Operand Src1Mod, Operand Src2Mod> {
2037+ Operand Src0Mod, Operand Src1Mod, Operand Src2Mod,
2038+ bit HasFP8ByteSel = 0, bit HasFP8DstByteSel = 0> {
20382039 dag ret = getInsVOP3Base<Src0RC, Src1RC,
20392040 Src2RC, NumSrcArgs,
20402041 HasClamp, 1/*HasModifiers*/, 1/*HasSrc2Mods*/, HasOMod,
2041- Src0Mod, Src1Mod, Src2Mod, /*HasOpSel=*/1>.ret;
2042+ Src0Mod, Src1Mod, Src2Mod, /*HasOpSel=*/1,
2043+ HasFP8ByteSel, HasFP8DstByteSel>.ret;
20422044}
20432045
20442046class getInsDPPBase <RegisterOperand OldRC, RegisterOperand Src0RC, RegisterOperand Src1RC,
@@ -2244,7 +2246,8 @@ class getAsmVOP3OpSel <int NumSrcArgs,
22442246 bit HasOMod,
22452247 bit Src0HasMods,
22462248 bit Src1HasMods,
2247- bit Src2HasMods> {
2249+ bit Src2HasMods,
2250+ bit HasByteSel = 0> {
22482251 string dst = "$vdst";
22492252
22502253 string isrc0 = !if(!eq(NumSrcArgs, 1), "$src0", "$src0,");
@@ -2263,9 +2266,10 @@ class getAsmVOP3OpSel <int NumSrcArgs,
22632266 string src1 = !if(Src1HasMods, fsrc1, isrc1);
22642267 string src2 = !if(Src2HasMods, fsrc2, isrc2);
22652268
2269+ string bytesel = !if(HasByteSel, "$byte_sel", "");
22662270 string clamp = !if(HasClamp, "$clamp", "");
22672271 string omod = !if(HasOMod, "$omod", "");
2268- string ret = dst#", "#src0#src1#src2#"$op_sel"#clamp#omod;
2272+ string ret = dst#", "#src0#src1#src2#"$op_sel"#bytesel# clamp#omod;
22692273}
22702274
22712275class getAsmDPP <bit HasDst, int NumSrcArgs, bit HasModifiers, ValueType DstVT = i32> {
@@ -2630,7 +2634,8 @@ class VOPProfile <list<ValueType> _ArgVT, bit _EnableClamp = 0> {
26302634 Src0PackedMod, Src1PackedMod, Src2PackedMod>.ret;
26312635 field dag InsVOP3OpSel = getInsVOP3OpSel<Src0RC64, Src1RC64, Src2RC64,
26322636 NumSrcArgs, HasClamp, HasOMod,
2633- Src0Mod, Src1Mod, Src2Mod>.ret;
2637+ Src0Mod, Src1Mod, Src2Mod,
2638+ HasFP8ByteSel, HasFP8DstByteSel>.ret;
26342639 field dag InsDPP = !if(HasExtDPP,
26352640 getInsDPP<DstRCDPP, Src0DPP, Src1DPP, Src2DPP, NumSrcArgs,
26362641 HasModifiers, Src0ModDPP, Src1ModDPP, Src2ModDPP>.ret,
@@ -2680,7 +2685,8 @@ class VOPProfile <list<ValueType> _ArgVT, bit _EnableClamp = 0> {
26802685 HasOMod,
26812686 HasSrc0FloatMods,
26822687 HasSrc1FloatMods,
2683- HasSrc2FloatMods>.ret;
2688+ HasSrc2FloatMods,
2689+ HasFP8ByteSel>.ret;
26842690 field string AsmVOP3DPP = getAsmVOP3DPP<AsmVOP3Base>.ret;
26852691 field string AsmVOP3DPP16 = getAsmVOP3DPP16<AsmVOP3Base>.ret;
26862692 field string AsmVOP3DPP8 = getAsmVOP3DPP8<AsmVOP3Base>.ret;
0 commit comments