@@ -2812,7 +2812,8 @@ bool LinearScan::allocateRegs(LocalLiveRange* lr, G4_BB* bb, IR_Builder& builder
28122812 if (totalElems == 32 )
28132813 {
28142814 G4_DstRegRegion* dst = builder.createDstRegRegion (Direct, splitDcl->getRegVar (), 2 , 0 , 1 , oldDcl->getElemType ());
2815- auto src = builder.createSrcRegRegion (Mod_src_undef, Direct, oldDcl->getRegVar (), 2 , 0 , builder.getRegionStride1 (), oldDcl->getElemType ());
2815+ G4_SrcRegRegion* src = builder.Create_Src_Opnd_From_Dcl (oldDcl, builder.getRegionStride1 ());
2816+ src->setRegOff (2 );
28162817 G4_INST* splitInst2 = builder.createMov (16 , dst, src, InstOpt_WriteEnable, false );
28172818 bb->insert (iter, splitInst2);
28182819 }
@@ -2842,7 +2843,8 @@ bool LinearScan::allocateRegs(LocalLiveRange* lr, G4_BB* bb, IR_Builder& builder
28422843 if (totalElems == 32 )
28432844 {
28442845 G4_DstRegRegion* dst = builder.createDstRegRegion (Direct, newDcl->getRegVar (), 2 , 0 , 1 , splitDcl->getElemType ());
2845- auto src = builder.createSrcRegRegion (Mod_src_undef, Direct, splitDcl->getRegVar (), 2 , 0 , builder.getRegionStride1 (), splitDcl->getElemType ());
2846+ G4_SrcRegRegion* src = builder.Create_Src_Opnd_From_Dcl (splitDcl, builder.getRegionStride1 ());
2847+ src->setRegOff (2 );
28462848 G4_INST* movInst2 = builder.createMov (16 , dst, src, InstOpt_WriteEnable, false );
28472849 bb->insert (iter, movInst2);
28482850 }
@@ -2859,8 +2861,11 @@ bool LinearScan::allocateRegs(LocalLiveRange* lr, G4_BB* bb, IR_Builder& builder
28592861 newSrcDcl->copyAlign (oldSrcDcl);
28602862 newSrcDcl->setAliasDeclare (aliasOldSrcDcl, oldSrcDcl->getAliasOffset ());
28612863 }
2862- auto newSrc = builder.createSrcRegRegion (oldSrc->getModifier (), Direct, newSrcDcl->getRegVar (),
2863- oldSrc->getRegOff (), oldSrc->getSubRegOff (), oldSrc->getRegion (), oldSrc->getType ());
2864+ G4_SrcRegRegion* newSrc = builder.Create_Src_Opnd_From_Dcl (newSrcDcl, oldSrc->getRegion ());
2865+ newSrc->setRegOff (oldSrc->getRegOff ());
2866+ newSrc->setSubRegOff (oldSrc->getSubRegOff ());
2867+ newSrc->setModifier (oldSrc->getModifier ());
2868+ newSrc->setType (oldSrc->getType ());
28642869 useInst->setSrc (newSrc, pos);
28652870 while (aliasOldSrcDcl && aliasOldSrcDcl != oldDcl)
28662871 {
@@ -2889,8 +2894,11 @@ bool LinearScan::allocateRegs(LocalLiveRange* lr, G4_BB* bb, IR_Builder& builder
28892894 newSrcDcl->copyAlign (oldSrcDcl);
28902895 newSrcDcl->setAliasDeclare (aliasOldSrcDcl, oldSrcDcl->getAliasOffset ());
28912896 }
2892- auto newSrc = builder.createSrcRegRegion (oldSrc->getModifier (), Direct, newSrcDcl->getRegVar (),
2893- oldSrc->getRegOff (), oldSrc->getSubRegOff (), oldSrc->getRegion (), oldSrc->getType ());;
2897+ G4_SrcRegRegion* newSrc = builder.Create_Src_Opnd_From_Dcl (newSrcDcl, oldSrc->getRegion ());
2898+ newSrc->setRegOff (oldSrc->getRegOff ());
2899+ newSrc->setSubRegOff (oldSrc->getSubRegOff ());
2900+ newSrc->setModifier (oldSrc->getModifier ());
2901+ newSrc->setType (oldSrc->getType ());
28942902 useInst->setSrc (newSrc, pos);
28952903 while (aliasOldSrcDcl && aliasOldSrcDcl != oldDcl)
28962904 {
0 commit comments