pan/bi: Lower special ops to 32-bit
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 17 Apr 2020 19:52:18 +0000 (15:52 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 17 Apr 2020 20:25:36 +0000 (16:25 -0400)
We don't have 16-bit tables. We could probably do a bit better to avoid
so many conversions but hey.

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

src/panfrost/bifrost/bifrost_nir_algebraic.py

index ca89ce29f37062be1809061373ce8bcaab15ec40..5e2c65c68ac59bf68eb3a24102fd2214586cf91a 100644 (file)
@@ -80,6 +80,12 @@ for op in ('u2u', 'i2i', 'f2f', 'i2f', 'u2f', 'f2i', 'f2u'):
             srcsz *= 2
         dstsz *= 2
 
+# Bifrost doesn't have fp16 for a lot of special ops
+SPECIAL = ['fexp2', 'flog2', 'fsin', 'fcos']
+
+for op in SPECIAL:
+        converts += [((op + '@16', a), ('f2f16', (op, ('f2f32', a))))]
+
 def main():
     parser = argparse.ArgumentParser()
     parser.add_argument('-p', '--import-path', required=True)