@@ -1246,19 +1246,20 @@ class getInsSDWA <RegisterClass Src0RC, RegisterClass Src1RC, int NumSrcArgs,
1246
1246
!if (!eq(NumSrcArgs, 1),
1247
1247
!if (!eq(HasModifiers, 1),
1248
1248
// VOP1_SDWA with modifiers
1249
- (ins InputModsNoDefault:$src0_modifiers , Src0RC:$src0,
1249
+ (ins InputModsNoDefault:$src0_fmodifiers , Src0RC:$src0,
1250
1250
clampmod:$clamp, dst_sel:$dst_sel, dst_unused:$dst_unused,
1251
1251
src0_sel:$src0_sel)
1252
1252
/* else */,
1253
1253
// VOP1_SDWA without modifiers
1254
+ // FIXME: sext() modifier is not supported yet
1254
1255
(ins Src0RC:$src0, dst_sel:$dst_sel, dst_unused:$dst_unused,
1255
1256
src0_sel:$src0_sel)
1256
1257
/* endif */)
1257
1258
/* NumSrcArgs == 2 */,
1258
1259
!if (!eq(HasModifiers, 1),
1259
1260
// VOP2_SDWA with modifiers
1260
- (ins InputModsNoDefault:$src0_modifiers , Src0RC:$src0,
1261
- InputModsNoDefault:$src1_modifiers , Src1RC:$src1,
1261
+ (ins InputModsNoDefault:$src0_fmodifiers , Src0RC:$src0,
1262
+ InputModsNoDefault:$src1_fmodifiers , Src1RC:$src1,
1262
1263
clampmod:$clamp, dst_sel:$dst_sel, dst_unused:$dst_unused,
1263
1264
src0_sel:$src0_sel, src1_sel:$src1_sel)
1264
1265
/* else */,
@@ -1329,10 +1330,10 @@ class getAsmSDWA <bit HasDst, int NumSrcArgs, bit HasModifiers, ValueType DstVT
1329
1330
"$sdst",
1330
1331
"$vdst"),
1331
1332
""); // use $sdst for VOPC
1332
- string src0 = !if(!eq(NumSrcArgs, 1), "$src0_modifiers ", "$src0_modifiers ,");
1333
+ string src0 = !if(!eq(NumSrcArgs, 1), "$src0_fmodifiers ", "$src0_fmodifiers ,");
1333
1334
string src1 = !if(!eq(NumSrcArgs, 1), "",
1334
- !if(!eq(NumSrcArgs, 2), " $src1_modifiers ",
1335
- " $src1_modifiers ,"));
1335
+ !if(!eq(NumSrcArgs, 2), " $src1_fmodifiers ",
1336
+ " $src1_fmodifiers ,"));
1336
1337
string args = !if(!eq(HasModifiers, 0),
1337
1338
getAsm32<0, NumSrcArgs, DstVT>.ret,
1338
1339
", "#src0#src1#"$clamp");
@@ -1541,8 +1542,8 @@ def VOP_MAC : VOPProfile <[f32, f32, f32, f32]> {
1541
1542
VGPR_32:$src2, // stub argument
1542
1543
dpp_ctrl:$dpp_ctrl, row_mask:$row_mask,
1543
1544
bank_mask:$bank_mask, bound_ctrl:$bound_ctrl);
1544
- let InsSDWA = (ins InputModsNoDefault:$src0_modifiers , Src0RC32:$src0,
1545
- InputModsNoDefault:$src1_modifiers , Src1RC32:$src1,
1545
+ let InsSDWA = (ins InputModsNoDefault:$src0_fmodifiers , Src0RC32:$src0,
1546
+ InputModsNoDefault:$src1_fmodifiers , Src1RC32:$src1,
1546
1547
VGPR_32:$src2, // stub argument
1547
1548
clampmod:$clamp, dst_sel:$dst_sel, dst_unused:$dst_unused,
1548
1549
src0_sel:$src0_sel, src1_sel:$src1_sel);
@@ -1669,13 +1670,15 @@ class VOP1_DPP <vop1 op, string opName, VOPProfile p> :
1669
1670
class SDWADisableFields <VOPProfile p> {
1670
1671
bits<8> src0 = !if(!eq(p.NumSrcArgs, 0), 0, ?);
1671
1672
bits<3> src0_sel = !if(!eq(p.NumSrcArgs, 0), 6, ?);
1672
- bits<3> src0_modifiers = !if(p.HasModifiers, ?, 0);
1673
+ bits<2> src0_fmodifiers = !if(p.HasModifiers, ?, 0);
1674
+ bits<1> src0_imodifiers = 0; // FIXME: always 0 untill sext modifier is supported
1673
1675
bits<3> src1_sel = !if(!eq(p.NumSrcArgs, 0), 6,
1674
1676
!if(!eq(p.NumSrcArgs, 1), 6,
1675
1677
?));
1676
- bits<3> src1_modifiers = !if(!eq(p.NumSrcArgs, 0), 0,
1677
- !if(!eq(p.NumSrcArgs, 1), 0,
1678
- !if(p.HasModifiers, ?, 0)));
1678
+ bits<2> src1_fmodifiers = !if(!eq(p.NumSrcArgs, 0), 0,
1679
+ !if(!eq(p.NumSrcArgs, 1), 0,
1680
+ !if(p.HasModifiers, ?, 0)));
1681
+ bits<1> src1_imodifiers = 0;
1679
1682
bits<3> dst_sel = !if(p.HasDst, ?, 6);
1680
1683
bits<2> dst_unused = !if(p.HasDst, ?, 2);
1681
1684
bits<1> clamp = !if(p.HasModifiers, ?, 0);
0 commit comments