From 63fb30c6743a2d8dfb13f5fee18e0f950822e562 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 5 Feb 2018 15:08:03 +0100 Subject: [PATCH] nir: lower fexp2(fmul(flog2(a), 2)) to fmul(a, a) Similar for the 4 case. Suggested by Bas. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- 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 622ce824b97..d40d59b5cdb 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -321,6 +321,8 @@ optimizations = [ (('~fexp2', ('fmul', ('flog2', a), b)), ('fpow', a, b), '!options->lower_fpow'), # 2^(lg2(a)*b) = a^b (('~fexp2', ('fadd', ('fmul', ('flog2', a), b), ('fmul', ('flog2', c), d))), ('~fmul', ('fpow', a, b), ('fpow', c, d)), '!options->lower_fpow'), # 2^(lg2(a) * b + lg2(c) + d) = a^b * c^d + (('~fexp2', ('fmul', ('flog2', a), 2.0)), ('fmul', a, a)), + (('~fexp2', ('fmul', ('flog2', a), 4.0)), ('fmul', ('fmul', a, a), ('fmul', a, a))), (('~fpow', a, 1.0), a), (('~fpow', a, 2.0), ('fmul', a, a)), (('~fpow', a, 4.0), ('fmul', ('fmul', a, a), ('fmul', a, a))), -- 2.30.2