Mesa (master): i965: Fix a weirdness in NOT handling.

Eric Anholt anholt at kemper.freedesktop.org
Mon Oct 18 19:58:20 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Oct 18 11:13:26 2010 -0700

i965: Fix a weirdness in NOT handling.

XOR makes much more sense.  Note that the previous code would have
failed for not(not(x)), but that gets optimized out.

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index c9e1098..2224dc7 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -720,7 +720,7 @@ fs_visitor::visit(ir_expression *ir)
       /* Note that BRW_OPCODE_NOT is not appropriate here, since it is
        * ones complement of the whole register, not just bit 0.
        */
-      emit(fs_inst(BRW_OPCODE_ADD, this->result, op[0], fs_reg(-1)));
+      emit(fs_inst(BRW_OPCODE_XOR, this->result, op[0], fs_reg(1)));
       break;
    case ir_unop_neg:
       op[0].negate = !op[0].negate;




More information about the mesa-commit mailing list