@@ -2034,11 +2034,13 @@ class getInsVOP3P <RegisterOperand Src0RC, RegisterOperand Src1RC,
2034
2034
class getInsVOP3OpSel <RegisterOperand Src0RC, RegisterOperand Src1RC,
2035
2035
RegisterOperand Src2RC, int NumSrcArgs,
2036
2036
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> {
2038
2039
dag ret = getInsVOP3Base<Src0RC, Src1RC,
2039
2040
Src2RC, NumSrcArgs,
2040
2041
HasClamp, 1/*HasModifiers*/, 1/*HasSrc2Mods*/, HasOMod,
2041
- Src0Mod, Src1Mod, Src2Mod, /*HasOpSel=*/1>.ret;
2042
+ Src0Mod, Src1Mod, Src2Mod, /*HasOpSel=*/1,
2043
+ HasFP8ByteSel, HasFP8DstByteSel>.ret;
2042
2044
}
2043
2045
2044
2046
class getInsDPPBase <RegisterOperand OldRC, RegisterOperand Src0RC, RegisterOperand Src1RC,
@@ -2244,7 +2246,8 @@ class getAsmVOP3OpSel <int NumSrcArgs,
2244
2246
bit HasOMod,
2245
2247
bit Src0HasMods,
2246
2248
bit Src1HasMods,
2247
- bit Src2HasMods> {
2249
+ bit Src2HasMods,
2250
+ bit HasByteSel = 0> {
2248
2251
string dst = "$vdst";
2249
2252
2250
2253
string isrc0 = !if(!eq(NumSrcArgs, 1), "$src0", "$src0,");
@@ -2263,9 +2266,10 @@ class getAsmVOP3OpSel <int NumSrcArgs,
2263
2266
string src1 = !if(Src1HasMods, fsrc1, isrc1);
2264
2267
string src2 = !if(Src2HasMods, fsrc2, isrc2);
2265
2268
2269
+ string bytesel = !if(HasByteSel, "$byte_sel", "");
2266
2270
string clamp = !if(HasClamp, "$clamp", "");
2267
2271
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;
2269
2273
}
2270
2274
2271
2275
class getAsmDPP <bit HasDst, int NumSrcArgs, bit HasModifiers, ValueType DstVT = i32> {
@@ -2630,7 +2634,8 @@ class VOPProfile <list<ValueType> _ArgVT, bit _EnableClamp = 0> {
2630
2634
Src0PackedMod, Src1PackedMod, Src2PackedMod>.ret;
2631
2635
field dag InsVOP3OpSel = getInsVOP3OpSel<Src0RC64, Src1RC64, Src2RC64,
2632
2636
NumSrcArgs, HasClamp, HasOMod,
2633
- Src0Mod, Src1Mod, Src2Mod>.ret;
2637
+ Src0Mod, Src1Mod, Src2Mod,
2638
+ HasFP8ByteSel, HasFP8DstByteSel>.ret;
2634
2639
field dag InsDPP = !if(HasExtDPP,
2635
2640
getInsDPP<DstRCDPP, Src0DPP, Src1DPP, Src2DPP, NumSrcArgs,
2636
2641
HasModifiers, Src0ModDPP, Src1ModDPP, Src2ModDPP>.ret,
@@ -2680,7 +2685,8 @@ class VOPProfile <list<ValueType> _ArgVT, bit _EnableClamp = 0> {
2680
2685
HasOMod,
2681
2686
HasSrc0FloatMods,
2682
2687
HasSrc1FloatMods,
2683
- HasSrc2FloatMods>.ret;
2688
+ HasSrc2FloatMods,
2689
+ HasFP8ByteSel>.ret;
2684
2690
field string AsmVOP3DPP = getAsmVOP3DPP<AsmVOP3Base>.ret;
2685
2691
field string AsmVOP3DPP16 = getAsmVOP3DPP16<AsmVOP3Base>.ret;
2686
2692
field string AsmVOP3DPP8 = getAsmVOP3DPP8<AsmVOP3Base>.ret;
0 commit comments