diff --git a/.pick_status.json b/.pick_status.json index 4fb8630d2fa..f1cb264d154 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1345,7 +1345,7 @@ "description": "Revert \"nir: Replace an odd comparison involving fmin of -b2f\"", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "f50400cc8040cf2d07de97e76d9b1ed144c5c8b4" }, diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 2fb4d5ae629..8d14b8c2853 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -423,19 +423,6 @@ optimizations.extend([ (('ieq', ('iadd', a, b), a), ('ieq', b, 0)), (('ine', ('iadd', a, b), a), ('ine', b, 0)), - # fmin(-b2f(a), b) >= 0.0 - # -b2f(a) >= 0.0 && b >= 0.0 - # -b2f(a) == 0.0 && b >= 0.0 -b2f can only be 0 or -1, never >0 - # b2f(a) == 0.0 && b >= 0.0 - # a == False && b >= 0.0 - # !a && b >= 0.0 - # - # The fge in the second replacement is not a typo. I leave the proof that - # "fmin(-b2f(a), b) >= 0 <=> fmin(-b2f(a), b) == 0" as an exercise for the - # reader. - (('fge', ('fmin', ('fneg', ('b2f', 'a@1')), 'b@1'), 0.0), ('iand', ('inot', a), ('fge', b, 0.0))), - (('feq', ('fmin', ('fneg', ('b2f', 'a@1')), 'b@1'), 0.0), ('iand', ('inot', a), ('fge', b, 0.0))), - (('feq', ('b2f', 'a@1'), 0.0), ('inot', a)), (('~fneu', ('b2f', 'a@1'), 0.0), a), (('ieq', ('b2i', 'a@1'), 0), ('inot', a)),