From: Elie Tournier Date: Fri, 24 May 2019 11:16:25 +0000 (+0100) Subject: nir/algebraic: sqrt(x)*sqrt(x) -> fabs(x) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=22c5c54a4fffb7d0179218ec8cec237cbc049160;p=mesa.git nir/algebraic: sqrt(x)*sqrt(x) -> fabs(x) total instructions in shared programs: 12840840 -> 12839341 (-0.01%) instructions in affected programs: 122581 -> 121082 (-1.22%) helped: 559 HURT: 0 total cycles in shared programs: 302505756 -> 302490031 (<.01%) cycles in affected programs: 2022900 -> 2007175 (-0.78%) helped: 1090 HURT: 130 Signed-off-by: Elie Tournier Reviewed-by: Matt Turner Tested-by: Marge Bot Part-of: --- diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 73056c3c35c..2e139ebb85f 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -746,6 +746,7 @@ optimizations.extend([ (('~flog2', ('fpow', a, b)), ('fmul', b, ('flog2', a))), (('~fmul', ('fexp2(is_used_once)', a), ('fexp2(is_used_once)', b)), ('fexp2', ('fadd', a, b))), (('bcsel', ('flt', a, 0.0), 0.0, ('fsqrt', a)), ('fsqrt', ('fmax', a, 0.0))), + (('~fmul', ('fsqrt', a), ('fsqrt', a)), ('fabs',a)), # Division and reciprocal (('~fdiv', 1.0, a), ('frcp', a)), (('fdiv', a, b), ('fmul', a, ('frcp', b)), 'options->lower_fdiv'),