[Mesa-dev] [PATCH 10/10] nir: Add algebraic optimizations for division and reciprocal.
Kenneth Graunke
kenneth at whitecape.org
Thu Jan 22 03:41:31 PST 2015
These also exist in opt_algebraic.cpp.
total NIR instructions in shared programs: 2011430 -> 2011211 (-0.01%)
NIR instructions in affected programs: 42221 -> 42002 (-0.52%)
helped: 198
total i965 instructions in shared programs: 6020554 -> 6020118 (-0.01%)
i965 instructions in affected programs: 84497 -> 84061 (-0.52%)
helped: 394
HURT: 1 (by 1 instruction)
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
src/glsl/nir/nir_opt_algebraic.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/glsl/nir/nir_opt_algebraic.py b/src/glsl/nir/nir_opt_algebraic.py
index a5b5715..a1ed503 100644
--- a/src/glsl/nir/nir_opt_algebraic.py
+++ b/src/glsl/nir/nir_opt_algebraic.py
@@ -109,6 +109,11 @@ optimizations = [
(('fpow', a, 1.0), a),
(('fpow', a, 2.0), ('fmul', a, a)),
(('fpow', 2.0, a), ('fexp2', a)),
+ # Division and reciprocal
+ (('fdiv', 1.0, a), ('frcp', a)),
+ (('frcp', ('frcp', a)), a),
+ (('frcp', ('fsqrt', a)), ('frsq', a)),
+ (('frcp', ('frsq', a)), ('fsqrt', a)),
# This one may not be exact
(('feq', ('fadd', a, b), 0.0), ('feq', a, ('fneg', b))),
--
2.2.2
More information about the mesa-dev
mailing list