@@ -2278,9 +2278,7 @@ void FlowGraph::removeRedundMov()
2278
2278
while (curr_iter != bb->end ())
2279
2279
{
2280
2280
G4_INST* inst = (*curr_iter);
2281
- if (inst->opcode () == G4_mov &&
2282
- inst->getCondMod () == NULL &&
2283
- inst->getSaturate () == false )
2281
+ if (inst->isRawMov ())
2284
2282
{
2285
2283
G4_Operand *src = inst->getSrc (0 );
2286
2284
G4_DstRegRegion *dst = inst->getDst ();
@@ -2291,21 +2289,10 @@ void FlowGraph::removeRedundMov()
2291
2289
if (!dst->isIndirect () &&
2292
2290
!srcRgn->isIndirect () &&
2293
2291
dst->isGreg () &&
2294
- src->isGreg () &&
2295
- srcRgn->getModifier () == Mod_src_undef &&
2296
- dst->getType () == src->getType ())
2292
+ src->isGreg ())
2297
2293
{
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 ())
2309
2296
{
2310
2297
uint16_t stride = 0 ;
2311
2298
RegionDesc *rd = srcRgn->getRegion ();
0 commit comments