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

Reply via email to