diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index c95bb2414a5..d3296f574f0 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -419,9 +419,6 @@ optimise_nir(nir_shader *nir, unsigned quirks, bool is_blend, bool is_blit) if (!is_blend) NIR_PASS(progress, nir, nir_fuse_io_16); - /* Must be run at the end to prevent creation of fsin/fcos ops */ - NIR_PASS(progress, nir, midgard_nir_scale_trig); - do { progress = false; @@ -865,8 +862,8 @@ emit_alu(compiler_context *ctx, nir_alu_instr *instr) ALU_CASE_RTZ(i2f16, i2f_rte); ALU_CASE_RTZ(u2f16, u2f_rte); - ALU_CASE(fsin, fsinpi); - ALU_CASE(fcos, fcospi); + ALU_CASE(fsin_mdg, fsinpi); + ALU_CASE(fcos_mdg, fcospi); /* We'll get 0 in the second arg, so: * ~a = ~(a | 0) = nor(a, 0) */ diff --git a/src/panfrost/midgard/midgard_nir.h b/src/panfrost/midgard/midgard_nir.h index 25f3668969b..a8a36cd54a9 100644 --- a/src/panfrost/midgard/midgard_nir.h +++ b/src/panfrost/midgard/midgard_nir.h @@ -3,7 +3,6 @@ bool midgard_nir_lower_algebraic_early(nir_shader *shader); bool midgard_nir_lower_algebraic_late(nir_shader *shader); -bool midgard_nir_scale_trig(nir_shader *shader); bool midgard_nir_cancel_inot(nir_shader *shader); bool midgard_nir_lower_image_bitsize(nir_shader *shader); bool midgard_nir_lower_helper_writes(nir_shader *shader); diff --git a/src/panfrost/midgard/midgard_nir_algebraic.py b/src/panfrost/midgard/midgard_nir_algebraic.py index 9c8668f9683..0dc7347a597 100644 --- a/src/panfrost/midgard/midgard_nir_algebraic.py +++ b/src/panfrost/midgard/midgard_nir_algebraic.py @@ -34,6 +34,10 @@ c = 'c' algebraic = [ # Allows us to schedule as a multiply by 2 (('~fadd', ('fadd', a, b), a), ('fadd', ('fadd', a, a), b)), + + # Midgard scales fsin/fcos arguments by pi. + (('fsin', a), ('fsin_mdg', ('fdiv', a, math.pi))), + (('fcos', a), ('fcos_mdg', ('fdiv', a, math.pi))), ] algebraic_late = [ @@ -135,14 +139,6 @@ cancel_inot = [ (('inot', ('inot', a)), a) ] -# Midgard scales fsin/fcos arguments by pi. -# Pass must be run only once, after the main loop - -scale_trig = [ - (('fsin', a), ('fsin', ('fdiv', a, math.pi))), - (('fcos', a), ('fcos', ('fdiv', a, math.pi))), -] - def main(): parser = argparse.ArgumentParser() parser.add_argument('-p', '--import-path', required=True) @@ -162,9 +158,6 @@ def run(): print(nir_algebraic.AlgebraicPass("midgard_nir_lower_algebraic_late", algebraic_late + converts + constant_switch).render()) - print(nir_algebraic.AlgebraicPass("midgard_nir_scale_trig", - scale_trig).render()) - print(nir_algebraic.AlgebraicPass("midgard_nir_cancel_inot", cancel_inot).render())