diff options
author | Paul Berry <[email protected]> | 2011-09-14 17:06:35 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2011-09-19 10:24:08 -0700 |
commit | 20da49b2677fcf6a721b8a46e037a01e842fee61 (patch) | |
tree | 8cdccd61042a2abf539364b248ae6d7b22d3f36f | |
parent | 24a113093b9bf4620b35fe77f4a7cec47ad457c8 (diff) |
i965 new VS: Fix copy propagation of double negatives.
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.
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/mesa/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 c46735abfab..e0b2d2abf2b 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 |