Mesa (master): nir: Separate a weird compare with zero to two compares with zero
Ian Romanick
idr at kemper.freedesktop.org
Tue Jan 30 23:40:26 UTC 2018
Module: Mesa
Branch: master
Commit: 821e7a4d329f8460d0d27683580a703d9ed8431c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=821e7a4d329f8460d0d27683580a703d9ed8431c
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Thu Jan 11 14:14:25 2018 -0800
nir: Separate a weird compare with zero to two compares with zero
min(a+b, c+d) >= 0 becomes (a+b >= 0 && c+d >= 0).
No shader-db changes, but it does prevent 6 to 12 instruction
regressions in the next patch on all measured Intel platforms.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Reviewed-by: Elie Tournier <elie.tournier at collabora.com>
---
src/compiler/nir/nir_opt_algebraic.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py
index c097f12832..bee135c235 100644
--- a/src/compiler/nir/nir_opt_algebraic.py
+++ b/src/compiler/nir/nir_opt_algebraic.py
@@ -596,6 +596,8 @@ late_optimizations = [
(('~feq', ('fadd', a, b), 0.0), ('feq', a, ('fneg', b))),
(('~fne', ('fadd', a, b), 0.0), ('fne', a, ('fneg', b))),
+ (('~fge', ('fmin(is_used_once)', ('fadd(is_used_once)', a, b), ('fadd', c, d)), 0.0), ('iand', ('fge', a, ('fneg', b)), ('fge', c, ('fneg', d)))),
+
(('fdot2', a, b), ('fdot_replicated2', a, b), 'options->fdot_replicates'),
(('fdot3', a, b), ('fdot_replicated3', a, b), 'options->fdot_replicates'),
(('fdot4', a, b), ('fdot_replicated4', a, b), 'options->fdot_replicates'),
More information about the mesa-commit
mailing list