nir: Turn bcsel of +/- 1.0 and 0.0 into b2f sequences.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 9 Aug 2016 08:44:38 +0000 (01:44 -0700)
committerTimothy Arceri <timothy.arceri@collabora.com>
Mon, 9 Jan 2017 01:32:16 +0000 (12:32 +1100)
commit3371de38f282c77461bbe5007a2fec2a975776df
tree567a4758b4e8429d1821104bf40ca04beb140229
parent1c50d31c2613ec41d53fc784c59708e4d271f9b4
nir: Turn bcsel of +/- 1.0 and 0.0 into b2f sequences.

On BDW:

total instructions in shared programs: 13074882 -> 13068703 (-0.05%)
instructions in affected programs: 1823116 -> 1816937 (-0.34%)
helped: 4187
HURT: 537

total cycles in shared programs: 256622718 -> 256425382 (-0.08%)
cycles in affected programs: 123790120 -> 123592784 (-0.16%)
helped: 3823
HURT: 2037

total spills in shared programs: 15276 -> 14929 (-2.27%)
spills in affected programs: 9446 -> 9099 (-3.67%)
helped: 352
HURT: 1

total fills in shared programs: 20496 -> 20144 (-1.72%)
fills in affected programs: 13040 -> 12688 (-2.70%)
helped: 352
HURT: 1

LOST:   2
GAINED: 21

v2: Rely on 'a' being a well-formed boolean (Connor, Eric).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_opt_algebraic.py