nir/algebraic: optimize bcsel(a, 0, 1) to b2i
authorDaniel Schürmann <daniel@schuermann.dev>
Tue, 28 Apr 2020 10:45:07 +0000 (11:45 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 20 Jul 2020 15:56:45 +0000 (15:56 +0000)
commitde0ebaf09d43cc1e530f11511441cab7266b7f20
tree386e3e92847ab458e1b0d45e37e105bc5be91ec6
parente764192f4015a1c77863a1f9390f5f80f55bd67c
nir/algebraic: optimize bcsel(a, 0, 1) to b2i

This avoids combination with other bcsel operations,
and as b2i is often a no-op (when used for iadd and such),
the resulting pattern is preferable.

Totals from affected shaders: (VEGA)
SGPRS: 598448 -> 598448 (0.00 %)
VGPRS: 457940 -> 457352 (-0.13 %)
Spilled SGPRs: 127154 -> 127154 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 64836352 -> 64802728 (-0.05 %) bytes
LDS: 781 -> 781 (0.00 %) blocks
Max Waves: 22931 -> 22931 (0.00 %)

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4830>
src/compiler/nir/nir_opt_algebraic.py