bifrost: Add lowering for b2i32
Since the bool representation is 0/~0, we can convert to int
just by &1.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6079>
diff --git a/src/panfrost/bifrost/bifrost_nir_algebraic.py b/src/panfrost/bifrost/bifrost_nir_algebraic.py
index d28c82d..6f3f6ee 100644
--- a/src/panfrost/bifrost/bifrost_nir_algebraic.py
+++ b/src/panfrost/bifrost/bifrost_nir_algebraic.py
@@ -87,7 +87,8 @@
converts += [((op + '@16', a), ('f2f16', (op, ('f2f32', a))))]
converts += [(('f2b32', a), ('fne32', a, 0.0)),
- (('i2b32', a), ('ine32', a, 0))]
+ (('i2b32', a), ('ine32', a, 0)),
+ (('b2i32', a), ('iand', 'a@32', 1))]
def main():
parser = argparse.ArgumentParser()