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