radv/aco,aco: set lower_fmod
authorRhys Perry <pendingchaos02@gmail.com>
Thu, 3 Oct 2019 14:32:19 +0000 (15:32 +0100)
committerRhys Perry <pendingchaos02@gmail.com>
Fri, 4 Oct 2019 14:00:46 +0000 (14:00 +0000)
commita87b0f51410932e03f43a0f5c8ad21a9099e57df
treecdf9f51412dcf4c4b26d1c67237d97f89be4588a
parent0fe2e04f2d8e95ac6163ffa9e78e82d83aeb02e9
radv/aco,aco: set lower_fmod

This simplifies ACO and allows the lowered code to be optimized (in
particular, constant folded).

Totals from affected shaders:
SGPRS: 1776 -> 1776 (0.00 %)
VGPRS: 1436 -> 1436 (0.00 %)
Spilled SGPRs: 0 -> 0 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 203452 -> 203564 (0.06 %) bytes
LDS: 0 -> 0 (0.00 %) blocks
Max Waves: 103 -> 103 (0.00 %)

At least some of the code size increase seems to be from literals being
applied to instructions as a result of constant folding.

v2: remove fmod/frem handling in init_context()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
src/amd/compiler/aco_instruction_selection.cpp
src/amd/compiler/aco_instruction_selection_setup.cpp
src/amd/vulkan/radv_shader.c