"Fossies" - the Fresh Open Source Software Archive

Member "mesa-20.1.8/src/gallium/drivers/lima/ir/lima_nir_algebraic.py" (16 Sep 2020, 2239 Bytes) of package /linux/misc/mesa-20.1.8.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Python source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. For more information about "lima_nir_algebraic.py" see the Fossies "Dox" file reference documentation.

    1 #
    2 # Copyright (C) 2019 Vasily Khoruzhick <anarsoul@gmail.com>
    3 #
    4 # Permission is hereby granted, free of charge, to any person obtaining a
    5 # copy of this software and associated documentation files (the "Software"),
    6 # to deal in the Software without restriction, including without limitation
    7 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
    8 # and/or sell copies of the Software, and to permit persons to whom the
    9 # Software is furnished to do so, subject to the following conditions:
   10 #
   11 # The above copyright notice and this permission notice (including the next
   12 # paragraph) shall be included in all copies or substantial portions of the
   13 # Software.
   14 #
   15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   16 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   17 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   18 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   19 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   20 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
   21 # IN THE SOFTWARE.
   22 
   23 import argparse
   24 import sys
   25 from math import pi
   26 
   27 # Utgard scales fsin/fcos arguments by 2*pi.
   28 # Pass must be run only once, after the main loop
   29 
   30 scale_trig = [
   31         (('fsin', 'a'), ('fsin', ('fmul', 'a', 1.0 / (2.0 * pi)))),
   32         (('fcos', 'a'), ('fcos', ('fmul', 'a', 1.0 / (2.0 * pi)))),
   33 ]
   34 
   35 # GP has fsign op, so we can use cheaper lowering than one in generic opt_algebraic
   36 lower_ftrunc = [
   37         (('ftrunc', 'a'), ('fmul', ('fsign', 'a'), ('ffloor', ('fmax', 'a', ('fneg', 'a')))))
   38 ]
   39 
   40 def main():
   41     parser = argparse.ArgumentParser()
   42     parser.add_argument('-p', '--import-path', required=True)
   43     args = parser.parse_args()
   44     sys.path.insert(0, args.import_path)
   45     run()
   46 
   47 
   48 def run():
   49     import nir_algebraic  # pylint: disable=import-error
   50 
   51     print('#include "ir/lima_ir.h"')
   52 
   53     print(nir_algebraic.AlgebraicPass("lima_nir_scale_trig",
   54                                       scale_trig).render())
   55     print(nir_algebraic.AlgebraicPass("lima_nir_lower_ftrunc",
   56                                       lower_ftrunc).render())
   57 
   58 if __name__ == '__main__':
   59     main()