Mesa (master): i965: Optimize OPCODE_CMP by using BRW_SEL to choose results .

Eric Anholt anholt at kemper.freedesktop.org
Mon Mar 22 15:05:33 PDT 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Mar 19 11:44:43 2010 -0700

i965: Optimize OPCODE_CMP by using BRW_SEL to choose results.

Tested with piglit glsl-fs-sqrt-branch, fp-cmp.vpfp.

---

 src/mesa/drivers/dri/i965/brw_wm_emit.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index 1869fd0..5abc067 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -620,14 +620,10 @@ void emit_cmp(struct brw_compile *p,
 
    for (i = 0; i < 4; i++) {
       if (mask & (1<<i)) {	
-	 brw_set_saturate(p, (mask & SATURATE) ? 1 : 0);
-	 brw_MOV(p, dst[i], arg2[i]);
-	 brw_set_saturate(p, 0);
-
 	 brw_CMP(p, brw_null_reg(), BRW_CONDITIONAL_L, arg0[i], brw_imm_f(0));
 
 	 brw_set_saturate(p, (mask & SATURATE) ? 1 : 0);
-	 brw_MOV(p, dst[i], arg1[i]);
+	 brw_SEL(p, dst[i], arg1[i], arg2[i]);
 	 brw_set_saturate(p, 0);
 	 brw_set_predicate_control_flag_value(p, 0xff);
       }



More information about the mesa-commit mailing list