Mesa (master): i965/fs: Correct mistake in determining whether a MUL is negated.

Matt Turner mattst88 at kemper.freedesktop.org
Tue Apr 14 19:16:27 UTC 2015


Module: Mesa
Branch: master
Commit: 3ca17e75e4fe129511a4dcad47e139485beef880
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ca17e75e4fe129511a4dcad47e139485beef880

Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Apr 13 11:29:14 2015 -0700

i965/fs: Correct mistake in determining whether a MUL is negated.

a * b is equivalent to -a * -b, and the previous code was failing at
that.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89961
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/mesa/drivers/dri/i965/brw_fs_cse.cpp |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
index f2c4098..c1d0616 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
@@ -145,7 +145,7 @@ operands_match(const fs_inst *a, const fs_inst *b, bool *negate)
       xs[1].fixed_hw_reg.dw1.f = xs1_imm;
       ys[1].fixed_hw_reg.dw1.f = ys1_imm;
 
-      *negate = (xs0_negate + xs1_negate) != (ys0_negate + ys1_negate);
+      *negate = (xs0_negate != xs1_negate) != (ys0_negate != ys1_negate);
       return ret;
    } else if (!a->is_commutative()) {
       bool match = true;




More information about the mesa-commit mailing list