Mesa (master): i965/vec4: Implement b2f and b2i using negation.

Matt Turner mattst88 at kemper.freedesktop.org
Sun Oct 11 23:20:43 UTC 2015


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

Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Oct  9 12:27:04 2015 -0700

i965/vec4: Implement b2f and b2i using negation.

Curro added this in commit 3ee2daf23d (before the vec4/NIR backend was
added) but it was missed in the new NIR backend. Add it there as well.

instructions in affected programs:     1857 -> 1810 (-2.53%)
helped:                                15

Reviewed-by: Francisco Jerez <currojerez at riseup.net>

---

 src/mesa/drivers/dri/i965/brw_vec4_nir.cpp |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
index 41bd80d..fdf767d 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
@@ -1237,14 +1237,8 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr)
       break;
 
    case nir_op_b2i:
-      emit(AND(dst, op[0], src_reg(1)));
-      break;
-
    case nir_op_b2f:
-      op[0].type = BRW_REGISTER_TYPE_D;
-      dst.type = BRW_REGISTER_TYPE_D;
-      emit(AND(dst, op[0], src_reg(0x3f800000u)));
-      dst.type = BRW_REGISTER_TYPE_F;
+      emit(MOV(dst, negate(op[0])));
       break;
 
    case nir_op_f2b:




More information about the mesa-commit mailing list