Skip to content

Commit 432c310

Browse files
weiyu-chenpaigeale
authored andcommitted
Fix emasks on moves for indirect 64b instructions in
HWConformity Change-Id: I8e77b5f77b7693267de79808ea997abe7dce26da
1 parent 3c8da04 commit 432c310

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

visa/HWConformity.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3167,6 +3167,15 @@ void HWConformity::fix64bInst( INST_LIST_ITER iter, G4_BB* bb )
31673167
movInst->setSrc(srcAsUD, 0);
31683168
movInst->setExecSize(inst->getExecSize() * 2);
31693169

3170+
// NoMask is set on the mov instruction, but if we fall outside of the new execution size,
3171+
// it won't be executed fully
3172+
// e.g., we have to change
3173+
// (W) mov (16|M24) r[a0.0,64]<1>:ud r67.0<8;8,1>:ud
3174+
// into
3175+
// (W) mov (16|M0) r[a0.0,64]<1>:ud r67.0<8;8,1>:ud
3176+
movInst->setMaskOption(InstOpt_M0);
3177+
3178+
31703179
// mov saturate/pred to the original inst
31713180
movInst->setOptionOn(InstOpt_WriteEnable);
31723181
if (movInst->getSaturate())

0 commit comments

Comments
 (0)