pan/bi: Lower b2f to bcsel
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 10 Mar 2020 12:33:11 +0000 (08:33 -0400)
committerMarge Bot <eric+marge@anholt.net>
Tue, 10 Mar 2020 19:25:59 +0000 (19:25 +0000)
Since we can get a zero for free and a one inlined into the constant,
the obvious turns out to be efficient (while allowing flexibility for
boolean size).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4139>

src/panfrost/bifrost/bifrost_nir_algebraic.py

index fd31bdca9e701e321a6aadefa7dee5eb2db29c79..1fb49b1c69063d9e678e0bf04f326813a86444aa 100644 (file)
@@ -38,6 +38,8 @@ algebraic_late = [
     (('ineg', a), ('isub', 0, a)),
 ]
 
+for sz in ('16', '32', '64'):
+        algebraic_late += [(('b2f' + sz, 'a@1'), ('bcsel', a, 1.0, 0.0))]
 
 # Midgard is able to type convert down by only one "step" per instruction; if
 # NIR wants more than one step, we need to break up into multiple instructions