summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2011-09-14 17:06:35 -0700
committerPaul Berry <[email protected]>2011-09-19 10:24:08 -0700
commit20da49b2677fcf6a721b8a46e037a01e842fee61 (patch)
tree8cdccd61042a2abf539364b248ae6d7b22d3f36f
parent24a113093b9bf4620b35fe77f4a7cec47ad457c8 (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.cpp2
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