nir: Simplify min and max of b2f
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 8 Mar 2016 19:11:00 +0000 (11:11 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 30 Jan 2018 23:40:14 +0000 (15:40 -0800)
commit68420d8322c2b304a0b15f94b43dec19f082dfae
tree7925e0feda45059cd63252ce8d1bdba06af35d8d
parentd8d18516b0aa81f6791889bab7ce14703e65d8b4
nir: Simplify min and max of b2f

v2: Rebase on almost 2 years.  Require that one of the arguments to fmin
or fmax be used only once.  This prevents some regressions.

shader-db results:

Skylake and Broadwell had similar results.  Skylake shown.
total instructions in shared programs: 14526021 -> 14525913 (<.01%)
instructions in affected programs: 4613 -> 4505 (-2.34%)
helped: 31
HURT: 0
helped stats (abs) min: 1 max: 4 x̄: 3.48 x̃: 4
helped stats (rel) min: 0.62% max: 6.67% x̄: 3.31% x̃: 2.42%

total cycles in shared programs: 533118710 -> 533118403 (<.01%)
cycles in affected programs: 34334 -> 34027 (-0.89%)
helped: 24
HURT: 0
helped stats (abs) min: 4 max: 24 x̄: 12.79 x̃: 14
helped stats (rel) min: 0.25% max: 2.40% x̄: 1.08% x̃: 1.03%

No changes on GM45, Iron Lake, Sandy Bridge, Ivy Bridge, or Haswell.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Elie Tournier <elie.tournier@collabora.com>
src/compiler/nir/nir_opt_algebraic.py