nir: Add addition/multiplication identities of exp/log.
authorMatt Turner <mattst88@gmail.com>
Thu, 26 Mar 2015 18:08:01 +0000 (11:08 -0700)
committerMatt Turner <mattst88@gmail.com>
Wed, 1 Apr 2015 20:43:57 +0000 (13:43 -0700)
instructions in affected programs:     2858 -> 2808 (-1.75%)
helped:                                12

Reviewed-by: Eric Anholt <eric@anholt.net>
src/glsl/nir/nir_opt_algebraic.py

index 185c291aa72c224f20d8c78ffc2a177a25c1b474..3a3e6bfabb26c8a45ae57da011da77326cf56625 100644 (file)
@@ -153,6 +153,12 @@ optimizations = [
    (('flog', ('frsq', a)), ('fmul', -0.5, ('flog', a))),
    (('flog2', ('fpow', a, b)), ('fmul', b, ('flog2', a))),
    (('flog', ('fpow', a, b)), ('fmul', b, ('flog', a))),
+   (('fadd', ('flog2', a), ('flog2', b)), ('flog2', ('fmul', a, b))),
+   (('fadd', ('flog', a), ('flog', b)), ('flog', ('fmul', a, b))),
+   (('fadd', ('flog2', a), ('fneg', ('flog2', b))), ('flog2', ('fdiv', a, b))),
+   (('fadd', ('flog', a), ('fneg', ('flog', b))), ('flog', ('fdiv', a, b))),
+   (('fmul', ('fexp2', a), ('fexp2', b)), ('fexp2', ('fadd', a, b))),
+   (('fmul', ('fexp', a), ('fexp', b)), ('fexp', ('fadd', a, b))),
    # Division and reciprocal
    (('fdiv', 1.0, a), ('frcp', a)),
    (('frcp', ('frcp', a)), a),