@@ -2278,9 +2278,7 @@ void FlowGraph::removeRedundMov()
22782278 while (curr_iter != bb->end ())
22792279 {
22802280 G4_INST* inst = (*curr_iter);
2281- if (inst->opcode () == G4_mov &&
2282- inst->getCondMod () == NULL &&
2283- inst->getSaturate () == false )
2281+ if (inst->isRawMov ())
22842282 {
22852283 G4_Operand *src = inst->getSrc (0 );
22862284 G4_DstRegRegion *dst = inst->getDst ();
@@ -2291,21 +2289,10 @@ void FlowGraph::removeRedundMov()
22912289 if (!dst->isIndirect () &&
22922290 !srcRgn->isIndirect () &&
22932291 dst->isGreg () &&
2294- src->isGreg () &&
2295- srcRgn->getModifier () == Mod_src_undef &&
2296- dst->getType () == src->getType ())
2292+ src->isGreg ())
22972293 {
2298- G4_RegVar* dstBase = (G4_RegVar*)dst->getBase ();
2299- G4_RegVar* srcBase = (G4_RegVar*)srcRgn->getBase ();
2300-
2301- int dstSubReg, dstReg, srcSubReg, srcReg;
2302-
2303- dstSubReg = dst->getSubRegOff () + dstBase->getPhyRegOff ();
2304- srcSubReg = srcRgn->getSubRegOff () + srcBase->getPhyRegOff ();
2305- dstReg = dst->getRegOff () + dstBase->getPhyReg ()->asGreg ()->getRegNum ();
2306- srcReg = srcRgn->getRegOff () + srcBase->getPhyReg ()->asGreg ()->getRegNum ();
2307-
2308- if (dstReg == srcReg && dstSubReg == srcSubReg)
2294+ if (dst->getLinearizedStart () == srcRgn->getLinearizedStart () &&
2295+ dst->getLinearizedEnd () == srcRgn->getLinearizedEnd ())
23092296 {
23102297 uint16_t stride = 0 ;
23112298 RegionDesc *rd = srcRgn->getRegion ();
0 commit comments