On Mon, Sep 21, 2015 at 2:04 PM, Matt Turner <matts...@gmail.com> wrote: > With NIR: > > instructions in affected programs: 111508 -> 109193 (-2.08%) > helped: 507
*sigh* Any idea who's emitting these MOV's? If it's vec_to_movs, we should probably fix it one of these days. In any case, > Without NIR: > > instructions in affected programs: 28763 -> 28474 (-1.00%) > helped: 186 > --- > src/mesa/drivers/dri/i965/brw_vec4.cpp | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp > b/src/mesa/drivers/dri/i965/brw_vec4.cpp > index ed49cd3..d09a8dd 100644 > --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp > +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp > @@ -1021,6 +1021,27 @@ vec4_visitor::opt_register_coalesce() > inst->src[0].abs || inst->src[0].negate || inst->src[0].reladdr) > continue; > Could we add a quick comment here that we're detecting a no-op MOV? With that, Reviewed-by: Jason Ekstrand <jason.ekstr...@intel.com> Thanks fir fixing this! --Jason > + if (inst->dst.file == inst->src[0].file && > + inst->dst.reg == inst->src[0].reg && > + inst->dst.reg_offset == inst->src[0].reg_offset) { > + bool is_nop_mov = true; > + > + for (unsigned c = 0; c < 4; c++) { > + if ((inst->dst.writemask & (1 << c)) == 0) > + continue; > + > + if (BRW_GET_SWZ(inst->src[0].swizzle, c) != c) { > + is_nop_mov = false; > + break; > + } > + } > + > + if (is_nop_mov) { > + inst->remove(block); > + continue; > + } > + } > + > bool to_mrf = (inst->dst.file == MRF); > > /* Can't coalesce this GRF if someone else was going to > -- > 2.4.6 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev