Reviewed-by: Jason Ekstrand <jason.ekstr...@intel.com> On Sep 2, 2015 11:28 PM, "Kenneth Graunke" <kenn...@whitecape.org> wrote:
> commit 472ef9a02f2e5c5d0caa2809cb736a0f4f0d4693 introduced code to > change the types of SEL and MOV instructions for moves that simply > "copy bits around". It didn't account for type conversion moves, > however. So it would happily turn this: > > mov(8) vgrf6:D, -vgrf5:D > mov(8) vgrf7:F, vgrf6:UD > > into this: > > mov(8) vgrf6:D, -vgrf5:D > mov(8) vgrf7:D, -vgrf5:D > > which erroneously drops the conversion to float. > > Cc: "11.0 10.6" <mesa-sta...@lists.freedesktop.org> > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp > b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp > index 5445ad5..230b0ca 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp > @@ -279,6 +279,7 @@ static bool > can_change_source_types(fs_inst *inst) > { > return !inst->src[0].abs && !inst->src[0].negate && > + inst->dst.type == inst->src[0].type && > (inst->opcode == BRW_OPCODE_MOV || > (inst->opcode == BRW_OPCODE_SEL && > inst->predicate != BRW_PREDICATE_NONE && > -- > 2.5.0 > > _______________________________________________ > 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