summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_state.c
diff options
context:
space:
mode:
authorEduardo Lima Mitev <[email protected]>2015-10-22 15:32:13 +0200
committerEduardo Lima Mitev <[email protected]>2015-11-10 21:13:35 +0100
commitde51676b410ff3ccab1df765f8eee15126c9de4c (patch)
tree020e81651d7307d8f7f13e4a11cc6c96614f995f /src/gallium/drivers/r600/r600_state.c
parentfb3b5669cee85781b603f612228387e9a2e4120f (diff)
i965/nir/opt_peephole_ffma: Bypass fusion if any operand of fadd and fmul is a const
When both fadd and fmul instructions have at least one operand that is a constant and it is only used once, the total number of instructions can be reduced from 3 (1 ffma + 2 load_const) to 2 (1 fmul + 1 fadd); because the constants will be progagated as immediate operands of fmul and fadd. This patch detects these situations and prevents fusing fmul+fadd into ffma. Shader-db results on i965 Haswell: total instructions in shared programs: 6235835 -> 6225895 (-0.16%) instructions in affected programs: 1124094 -> 1114154 (-0.88%) total loops in shared programs: 1979 -> 1979 (0.00%) helped: 7612 HURT: 843 GAINED: 4 LOST: 0 Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_state.c')
0 files changed, 0 insertions, 0 deletions