Skip to content

Commit

Permalink
Fix emasks on moves for indirect 64b instructions in
Browse files Browse the repository at this point in the history
HWConformity

Change-Id: I8e77b5f77b7693267de79808ea997abe7dce26da
  • Loading branch information
weiyu-chen authored and paigeale committed Nov 1, 2018
1 parent 3c8da04 commit 432c310
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions visa/HWConformity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3167,6 +3167,15 @@ void HWConformity::fix64bInst( INST_LIST_ITER iter, G4_BB* bb )
movInst->setSrc(srcAsUD, 0);
movInst->setExecSize(inst->getExecSize() * 2);

// NoMask is set on the mov instruction, but if we fall outside of the new execution size,
// it won't be executed fully
// e.g., we have to change
// (W) mov (16|M24) r[a0.0,64]<1>:ud r67.0<8;8,1>:ud
// into
// (W) mov (16|M0) r[a0.0,64]<1>:ud r67.0<8;8,1>:ud
movInst->setMaskOption(InstOpt_M0);


// mov saturate/pred to the original inst
movInst->setOptionOn(InstOpt_WriteEnable);
if (movInst->getSaturate())
Expand Down

0 comments on commit 432c310

Please sign in to comment.