@@ -393,25 +393,29 @@ class MUBUF_Invalidate <string opName, SDPatternOperator node = null_frag> :
393393 let sccb_value = 0;
394394}
395395
396- class getLdStVDataRegisterOperand <int Size, bit isTFE> {
397- RegisterOperand tfeVDataOp =
396+ class getBUFVDataRegisterOperand <int Size, bit isTFE> {
397+ defvar tfeVDataOp =
398398 !cond(!eq(Size, 16) : AVLdSt_64,
399399 !eq(Size, 32) : AVLdSt_64,
400400 !eq(Size, 64) : AVLdSt_96,
401401 !eq(Size, 96) : AVLdSt_128,
402402 !eq(Size, 128) : AVLdSt_160);
403403
404- RegisterOperand ret = !if(isTFE,
405- tfeVDataOp,
406- !if(!eq(Size, 16), AVLdSt_32,
407- getLdStRegisterOperandForSize<Size>.ret));
404+ defvar VDataOp =
405+ !cond(!eq(Size, 16) : AVLdSt_32,
406+ !eq(Size, 32) : AVLdSt_32,
407+ !eq(Size, 64) : AVLdSt_64,
408+ !eq(Size, 96) : AVLdSt_96,
409+ !eq(Size, 128) : AVLdSt_128);
410+
411+ RegisterOperand ret = !if(isTFE, tfeVDataOp, VDataOp);
408412}
409413
410414class getMUBUFInsDA<list<RegisterOperand> vdataList,
411415 list<RegisterClass> vaddrList, bit isTFE, bit hasRestrictedSOffset> {
412416 RegisterOperand vdataClass = !if(!empty(vdataList), ?, !head(vdataList));
413417 RegisterClass vaddrClass = !if(!empty(vaddrList), ?, !head(vaddrList));
414- RegisterOperand vdata_op = getLdStVDataRegisterOperand <vdataClass.RegClass.Size, isTFE>.ret;
418+ RegisterOperand vdata_op = getBUFVDataRegisterOperand <vdataClass.RegClass.Size, isTFE>.ret;
415419
416420 dag SOffset = !if(hasRestrictedSOffset, (ins SReg_32:$soffset), (ins SCSrc_b32:$soffset));
417421 dag NonVaddrInputs = !con((ins SReg_128_XNULL:$srsrc), SOffset, (ins Offset:$offset, CPol_0:$cpol, i1imm_0:$swz));
@@ -487,7 +491,7 @@ class MUBUF_Load_Pseudo <string opName,
487491 bit isTFE = 0,
488492 bit hasRestrictedSOffset = 0,
489493 list<dag> pattern=[],
490- RegisterOperand vdata_op = getLdStVDataRegisterOperand <vdata_vt.Size, isTFE>.ret>
494+ RegisterOperand vdata_op = getBUFVDataRegisterOperand <vdata_vt.Size, isTFE>.ret>
491495 : MUBUF_Pseudo<opName,
492496 !if(!or(isLds, isLdsOpc), (outs), (outs vdata_op:$vdata)),
493497 !con(getMUBUFIns<addrKind, [], isTFE, hasRestrictedSOffset>.ret,
0 commit comments