nir/algebraic: add fexp2(fmul(flog2(a), 0.5) -> fsqrt(a) optimization
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 27 Mar 2020 15:40:38 +0000 (16:40 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 30 Mar 2020 14:07:43 +0000 (14:07 +0000)
commit3935a729d998274ba78ab70e9eb6dd7dac2c2368
tree8912c3cfdf273042acc9877f7e79992f1e983def
parent2e92d3381988a85b2a6dcc8d8a8d7158ace9f348
nir/algebraic: add fexp2(fmul(flog2(a), 0.5) -> fsqrt(a) optimization

Helps some Wolfenstein II and Wolfenstein Youngblood shaders.

pipeline-db (VEGA10/ACO):
Totals from affected shaders:
SGPRS: 17904 -> 17904 (0.00 %)
VGPRS: 14492 -> 14492 (0.00 %)
Spilled SGPRs: 20 -> 20 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Code Size: 1753152 -> 1749708 (-0.20 %) bytes
Max Waves: 2581 -> 2581 (0.00 %)

pipeline-db (VEGA10/LLVM):
Totals from affected shaders:
SGPRS: 26656 -> 26656 (0.00 %)
VGPRS: 23780 -> 23780 (0.00 %)
Spilled SGPRs: 2112 -> 2112 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Code Size: 2552712 -> 2549236 (-0.14 %) bytes
Max Waves: 3359 -> 3359 (0.00 %)

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4353>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4353>
src/compiler/nir/nir_opt_algebraic.py