xref: /aosp_15_r20/external/mesa3d/src/broadcom/compiler/v3d_nir_lower_algebraic.py (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1# SPDX-License-Identifier: MIT
2
3import argparse
4import sys
5
6a = 'a'
7
8lower_alu = [
9    (('f2i8', a), ('i2i8', ('f2i32', a))),
10    (('f2i16', a), ('i2i16', ('f2i32', a))),
11
12    (('f2u8', a), ('u2u8', ('f2u32', a))),
13    (('f2u16', a), ('u2u16', ('f2u32', a))),
14
15    (('i2f32', 'a@8'), ('i2f32', ('i2i32', a))),
16    (('i2f32', 'a@16'), ('i2f32', ('i2i32', a))),
17
18    (('u2f32', 'a@8'), ('u2f32', ('u2u32', a))),
19    (('u2f32', 'a@16'), ('u2f32', ('u2u32', a))),
20]
21
22def main():
23    parser = argparse.ArgumentParser()
24    parser.add_argument('-p', '--import-path', required=True)
25    args = parser.parse_args()
26    sys.path.insert(0, args.import_path)
27    run()
28
29def run():
30    import nir_algebraic  # pylint: disable=import-error
31
32    print('#include "v3d_compiler.h"')
33
34    print(nir_algebraic.AlgebraicPass("v3d_nir_lower_algebraic",
35                                      lower_alu).render())
36
37if __name__ == '__main__':
38    main()
39