Skip to content

Commit ab90e00

Browse files
weiyu-chensys_zuul
authored and
sys_zuul
committed
Handle the splitting of Vx1 (e.g., r[a0.0]<8;1>) regions correctly.
Change-Id: I2f2f5bbd98029abc70d07f67254632a62fdeb66c
1 parent 9ae0af4 commit ab90e00

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

visa/Optimizer.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6474,10 +6474,10 @@ bool Optimizer::foldPseudoAndOr(G4_BB* bb, INST_LIST_ITER& ii)
64746474
if (start > 0)
64756475
{
64766476
// just change immediate offset
6477-
uint16_t subRegOff = src->getSubRegOff() + start;
6478-
G4_SrcRegRegion* newSrc = createSrcRegRegion(src->getModifier(), src->getRegAccess(), src->getBase(),
6479-
src->getRegOff(), subRegOff, src->getRegion(), src->getType(), src->getAccRegSel());
6480-
newSrc->setImmAddrOff(src->getAddrImm());
6477+
assert((start % src->getRegion()->width == 0) && "illegal starting offset and width combination");
6478+
uint16_t subRegOff = src->getSubRegOff() + start / src->getRegion()->width;
6479+
auto newSrc = createIndirectSrc(src->getModifier(), src->getBase(), src->getRegOff(), subRegOff, src->getRegion(),
6480+
src->getType(), src->getAddrImm());
64816481
return newSrc;
64826482
}
64836483
else
@@ -6492,10 +6492,8 @@ bool Optimizer::foldPseudoAndOr(G4_BB* bb, INST_LIST_ITER& ii)
64926492
short numRows = start / wd;
64936493
short numCols = start % wd;
64946494
short newOff = (numRows * vs + numCols * hs) * G4_Type_Table[src->getType()].byteSize;
6495-
6496-
G4_SrcRegRegion* newSrc = createSrcRegRegion(src->getModifier(), src->getRegAccess(), src->getBase(),
6497-
src->getRegOff(), src->getSubRegOff(), rd, src->getType(), src->getAccRegSel());
6498-
newSrc->setImmAddrOff(src->getAddrImm() + newOff);
6495+
auto newSrc = createIndirectSrc(src->getModifier(), src->getBase(), src->getRegOff(), src->getSubRegOff(), rd,
6496+
src->getType(), src->getAddrImm() + newOff);
64996497
return newSrc;
65006498

65016499
}

0 commit comments

Comments
 (0)