From f00fcfb7a2e137c7c0064b5e4167bb7fb49537a9 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 31 May 2018 12:56:00 -0700 Subject: [PATCH] nir: Lower !f2b(x) to x == 0.0 Some trivial help now, but it also prevents ~40 regressions caused by Samuel's "nir: implement the GLSL equivalent of if simplication in nir_opt_if" patch. All Gen4+ platforms had similar results. (Skylake shown) total instructions in shared programs: 14369557 -> 14369555 (<.01%) instructions in affected programs: 442 -> 440 (-0.45%) helped: 2 HURT: 0 total cycles in shared programs: 532425772 -> 532425743 (<.01%) cycles in affected programs: 6086 -> 6057 (-0.48%) helped: 2 HURT: 0 Signed-off-by: Ian Romanick Reviewed-by: Samuel Pitoiset Reviewed-by: Timothy Arceri Reviewed-by: Iago Toral Quiroga --- src/compiler/nir/nir_opt_algebraic.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index f153570105b..fdfb0250b0b 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -441,6 +441,7 @@ optimizations = [ (('i2b', ('iabs', a)), ('i2b', a)), (('fabs', ('b2f', a)), ('b2f', a)), (('iabs', ('b2i', a)), ('b2i', a)), + (('inot', ('f2b', a)), ('feq', a, 0.0)), # Packing and then unpacking does nothing (('unpack_64_2x32_split_x', ('pack_64_2x32_split', a, b)), a),