xref: /aosp_15_r20/external/mesa3d/src/freedreno/ir3/ir3_nir_trig.py (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1#
2# Copyright © 2016 Intel Corporation
3#
4# SPDX-License-Identifier: MIT
5
6import argparse
7import sys
8
9trig_workarounds = [
10   (('fsin', 'x@32'), ('fsin', ('!ffma', 6.2831853, ('ffract', ('!ffma', 0.15915494, 'x', 0.5)), -3.14159265))),
11   (('fcos', 'x@32'), ('fcos', ('!ffma', 6.2831853, ('ffract', ('!ffma', 0.15915494, 'x', 0.5)), -3.14159265))),
12]
13
14
15def main():
16    parser = argparse.ArgumentParser()
17    parser.add_argument('-p', '--import-path', required=True)
18    args = parser.parse_args()
19    sys.path.insert(0, args.import_path)
20    run()
21
22
23def run():
24    import nir_algebraic  # pylint: disable=import-error
25
26    print('#include "ir3_nir.h"')
27    print(nir_algebraic.AlgebraicPass("ir3_nir_apply_trig_workarounds",
28                                      trig_workarounds).render())
29
30
31if __name__ == '__main__':
32    main()
33