diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index d6919950dd5..d2683a499c8 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -602,12 +602,12 @@ optimizations.extend([ (('fge', ('fneg', a), ('fneg', b)), ('fge', b, a)), (('feq', ('fneg', a), ('fneg', b)), ('feq', b, a)), (('fneu', ('fneg', a), ('fneg', b)), ('fneu', b, a)), - (('flt', ('fneg', a), -1.0), ('flt', 1.0, a)), - (('flt', -1.0, ('fneg', a)), ('flt', a, 1.0)), - (('fge', ('fneg', a), -1.0), ('fge', 1.0, a)), - (('fge', -1.0, ('fneg', a)), ('fge', a, 1.0)), - (('fneu', ('fneg', a), -1.0), ('fneu', 1.0, a)), - (('feq', -1.0, ('fneg', a)), ('feq', a, 1.0)), + (('flt', ('fneg', 'a(is_not_const)'), '#b'), ('flt', ('fneg', b), a)), + (('flt', '#b', ('fneg', 'a(is_not_const)')), ('flt', a, ('fneg', b))), + (('fge', ('fneg', 'a(is_not_const)'), '#b'), ('fge', ('fneg', b), a)), + (('fge', '#b', ('fneg', 'a(is_not_const)')), ('fge', a, ('fneg', b))), + (('fneu', ('fneg', 'a(is_not_const)'), '#b'), ('fneu', ('fneg', b), a)), + (('feq', '#b', ('fneg', 'a(is_not_const)')), ('feq', a, ('fneg', b))), (('flt', a, '#b(is_negative_zero)'), ('flt', a, 0.0)), (('flt', '#b(is_negative_zero)', a), ('flt', 0.0, a)), (('fge', a, '#b(is_negative_zero)'), ('fge', a, 0.0)), @@ -619,6 +619,10 @@ optimizations.extend([ (('ine', ('ineg', a), 0), ('ine', a, 0)), (('ieq', ('iabs', a), 0), ('ieq', a, 0)), (('ine', ('iabs', a), 0), ('ine', a, 0)), + (('fneu', ('fabs', a), 0.0), ('fneu', a, 0.0)), + (('feq', ('fabs', a), 0.0), ('feq', a, 0.0)), + (('fneu', ('fabs', a), ('fabs', a)), ('fneu', a, a)), + (('feq', ('fabs', a), ('fabs', a)), ('feq', a, a)), # b < fsat(NaN) -> b < 0 -> false, and b < Nan -> false. (('flt', '#b(is_gt_0_and_lt_1)', ('fsat(is_used_once)', a)), ('flt', b, a)),