radeonsi/nir: enable lowering of fpow
authorTimothy Arceri <tarceri@itsqueeze.com>
Fri, 23 Feb 2018 06:00:01 +0000 (17:00 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Mon, 26 Feb 2018 00:43:47 +0000 (11:43 +1100)
Lowering fpow in NIR rather than LLVM can be beneficial.

Polaris results:

Totals from affected shaders:
SGPRS: 124928 -> 124896 (-0.03 %)
VGPRS: 68616 -> 68332 (-0.41 %)
Spilled SGPRs: 394 -> 413 (4.82 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 3668912 -> 3658368 (-0.29 %) bytes
LDS: 0 -> 0 (0.00 %) blocks
Max Waves: 18575 -> 18593 (0.10 %)
Wait states: 0 -> 0 (0.00 %)

Fixes: d6b753920677 "ac/nir: remove emission of nir_op_fpow"
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_get.c

index 19426334fb6f1eacfcf36bb5bca3511ffeaee482..998ef8d268b45146b72cff34b5fb595ec1c9bf1b 100644 (file)
@@ -496,6 +496,7 @@ static const struct nir_shader_compiler_options nir_options = {
        .lower_scmp = true,
        .lower_flrp32 = true,
        .lower_flrp64 = true,
+       .lower_fpow = true,
        .lower_fsat = true,
        .lower_fdiv = true,
        .lower_sub = true,