Module: Mesa Branch: master Commit: 539c25c2dafbc6b9fd1bc33d2727bebb5ad5bbd4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=539c25c2dafbc6b9fd1bc33d2727bebb5ad5bbd4
Author: Ian Romanick <[email protected]> Date: Tue Jun 16 14:29:58 2020 -0700 nir/algebraic: Move the flrp -> bcsel rule earlier If multiple rules could match, the rule that appears first in the file is used. Only Tiger Lake and Ice Lake are affected. Other platforms either have a LRP instruction or can't run any shaders from shader-db that would benefit. v2: Fix issues created when this commit was rebased on top of 3c8934a644b8 ("nir/algebraic: add flrp patterns for 16 and 64 bits"). Noticed by Caio. Tiger Lake and Ice Lake had similar results. total instructions in shared programs: 20908672 -> 20908661 (<.01%) instructions in affected programs: 419 -> 408 (-2.63%) helped: 5 HURT: 0 helped stats (abs) min: 1 max: 3 x̄: 2.20 x̃: 3 helped stats (rel) min: 1.85% max: 3.19% x̄: 2.49% x̃: 2.65% 95% mean confidence interval for instructions value: -3.56 -0.84 95% mean confidence interval for instructions %-change: -3.24% -1.73% Instructions are helped. total cycles in shared programs: 473513940 -> 473513793 (<.01%) cycles in affected programs: 7176 -> 7029 (-2.05%) helped: 12 HURT: 0 helped stats (abs) min: 5 max: 22 x̄: 12.25 x̃: 12 helped stats (rel) min: 0.84% max: 3.24% x̄: 2.09% x̃: 1.80% 95% mean confidence interval for cycles value: -15.43 -9.07 95% mean confidence interval for cycles %-change: -2.57% -1.61% Cycles are helped. Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6358> --- src/compiler/nir/nir_opt_algebraic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 142bf99f201..bd9b786b91c 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -168,12 +168,12 @@ optimizations = [ # Float sizes for s in [16, 32, 64]: optimizations.extend([ + (('~flrp@{}'.format(s), a, b, ('b2f', 'c@1')), ('bcsel', c, b, a), 'options->lower_flrp{}'.format(s)), + (('~flrp@{}'.format(s), a, ('fadd', a, b), c), ('fadd', ('fmul', b, c), a), 'options->lower_flrp{}'.format(s)), (('~flrp@{}'.format(s), ('fadd', a, b), ('fadd', a, c), d), ('fadd', ('flrp', b, c, d), a), 'options->lower_flrp{}'.format(s)), (('~flrp@{}'.format(s), a, ('fmul(is_used_once)', a, b), c), ('fmul', ('flrp', 1.0, b, c), a), 'options->lower_flrp{}'.format(s)), - (('~flrp@{}'.format(s), a, b, ('b2f', 'c@1')), ('bcsel', c, b, a), 'options->lower_flrp{}'.format(s)), - (('~fadd@{}'.format(s), ('fmul', a, ('fadd', 1.0, ('fneg', c))), ('fmul', b, c)), ('flrp', a, b, c), '!options->lower_flrp{}'.format(s)), # These are the same as the previous three rules, but it depends on # 1-fsat(x) <=> fsat(1-x). See below. _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
