Mesa (master): nir: Allow abs/neg in select peephole pass.

Jason Ekstrand jekstrand at kemper.freedesktop.org
Fri Apr 17 18:08:12 UTC 2015


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

Author: Matt Turner <mattst88 at gmail.com>
Date:   Thu Apr  2 10:21:16 2015 -0700

nir: Allow abs/neg in select peephole pass.

total instructions in shared programs: 4314531 -> 4308949 (-0.13%)
instructions in affected programs:     429085 -> 423503 (-1.30%)
helped:                                1680
HURT:                                  0
GAINED:                                0
LOST:                                  111

Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

---

 src/glsl/nir/nir_opt_peephole_select.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/glsl/nir/nir_opt_peephole_select.c b/src/glsl/nir/nir_opt_peephole_select.c
index b89451b..f400cfd 100644
--- a/src/glsl/nir/nir_opt_peephole_select.c
+++ b/src/glsl/nir/nir_opt_peephole_select.c
@@ -84,7 +84,9 @@ block_check_for_allowed_instrs(nir_block *block)
       case nir_instr_type_alu: {
          /* It must be a move operation */
          nir_alu_instr *mov = nir_instr_as_alu(instr);
-         if (mov->op != nir_op_fmov && mov->op != nir_op_imov)
+         if (mov->op != nir_op_fmov && mov->op != nir_op_imov &&
+             mov->op != nir_op_fneg && mov->op != nir_op_ineg &&
+             mov->op != nir_op_fabs && mov->op != nir_op_iabs)
             return false;
 
          /* Can't handle saturate */




More information about the mesa-commit mailing list