About Social Code
aboutsummaryrefslogtreecommitdiff
path: root/src/kosmickrisp/compiler/msl_nir_algebraic.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/kosmickrisp/compiler/msl_nir_algebraic.py')
-rw-r--r--src/kosmickrisp/compiler/msl_nir_algebraic.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/kosmickrisp/compiler/msl_nir_algebraic.py b/src/kosmickrisp/compiler/msl_nir_algebraic.py
new file mode 100644
index 00000000000..16d5fdaea9d
--- /dev/null
+++ b/src/kosmickrisp/compiler/msl_nir_algebraic.py
@@ -0,0 +1,38 @@
+# Copyright 2025 LunarG, Inc.
+# Copyright 2025 Google LLC
+# Copyright 2022 Alyssa Rosenzweig
+# Copyright 2021 Collabora, Ltd.
+# Copyright 2016 Intel Corporation
+# SPDX-License-Identifier: MIT
+
+import argparse
+import sys
+import math
+
+a = 'a'
+
+lower_pack = [
+ # Based on the VIR lowering
+ (('f2f16_rtz', 'a@32'),
+ ('bcsel', ('flt', ('fabs', a), ('fabs', ('f2f32', ('f2f16_rtne', a)))),
+ ('isub', ('f2f16_rtne', a), 1), ('f2f16_rtne', a))),
+]
+
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-p', '--import-path', required=True)
+ args = parser.parse_args()
+ sys.path.insert(0, args.import_path)
+ run()
+
+def run():
+ import nir_algebraic # pylint: disable=import-error
+
+ print('#include "msl_private.h"')
+
+ print(nir_algebraic.AlgebraicPass("msl_nir_lower_algebraic_late", lower_pack).render())
+
+if __name__ == '__main__':
+ main()