diff options
author | Eduardo Lima Mitev <[email protected]> | 2015-10-22 15:32:13 +0200 |
---|---|---|
committer | Eduardo Lima Mitev <[email protected]> | 2015-11-10 21:13:35 +0100 |
commit | de51676b410ff3ccab1df765f8eee15126c9de4c (patch) | |
tree | 020e81651d7307d8f7f13e4a11cc6c96614f995f /src/gallium/drivers/r600/r600_state.c | |
parent | fb3b5669cee85781b603f612228387e9a2e4120f (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