nir: Add a bunch of b2[if] optimizations
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 11 Oct 2018 03:36:52 +0000 (22:36 -0500)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 11 Oct 2018 20:21:19 +0000 (15:21 -0500)
commitd7e0d47b9de3e759d5ed7b299fa7f4e7cbd8760e
tree5836308d807c3f1cf157d5847ce7c757558ca997
parent0e0dc596a2c008c32def103e175fcd5b7116f38f
nir: Add a bunch of b2[if] optimizations

The b2f and b2i conversions always produce zero or one which are both
representable in every type and size.  Since b2i and b2f support all bit
sizes, we can just get rid of the conversion opcode.

total instructions in shared programs: 15089335 -> 15084368 (-0.03%)
instructions in affected programs: 212564 -> 207597 (-2.34%)
helped: 896
HURT: 0

total cycles in shared programs: 369831123 -> 369826267 (<.01%)
cycles in affected programs: 2008647 -> 2003791 (-0.24%)
helped: 693
HURT: 216

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/compiler/nir/nir_opt_algebraic.py