On 09/15/2011 09:19 AM, Paul Berry wrote:
> When copy propagating a value into an instruction that negates its
> argument, we need to invert the sense of the value's "negate" flag, so
> that -(+x) becomes -x and -(-x) becomes +x.
> 
> Previously, we were always setting the value's "negate" flag to true
> in this circumstance, so that both -(+x) and -(-x) turned into -x.
> 
> Fixes Piglit test vs-double-negative.shader_test.
> ---
>  .../drivers/dri/i965/brw_vec4_copy_propagation.cpp |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp 
> b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
> index c46735a..e0b2d2a 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
> @@ -196,7 +196,7 @@ try_copy_propagation(struct intel_context *intel,
>        value.abs = true;
>     }
>     if (inst->src[arg].negate)
> -      value.negate = true;
> +      value.negate = !value.negate;
>  
>     /* FINISHME: We can't copy-propagate things that aren't normal
>      * vec8s into gen6 math instructions, because of the weird src

Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to