nir/algebraic: add optimization pattern for ('ult', a, ('and', b, a)) and friends.
[mesa.git] / src / compiler / nir / nir_opt_algebraic.py
index f1b5893be88a18deeab191cdd49d5e535578d495..36e576b7eff89edd84ce9716b13944440539716c 100644 (file)
@@ -497,6 +497,10 @@ optimizations = [
    (('ult', ('umax', a, b), a), False),
    (('uge', a, ('umax', b, a)), ('uge', a, b)),
    (('uge', ('umin', a, b), a), ('uge', b, a)),
+   (('ult', a, ('iand', b, a)), False),
+   (('ult', ('ior', a, b), a), False),
+   (('uge', a, ('iand', b, a)), True),
+   (('uge', ('ior', a, b), a), True),
 
    (('ilt', '#a', ('imax', '#b', c)), ('ior', ('ilt', a, b), ('ilt', a, c))),
    (('ilt', ('imin', '#a', b), '#c'), ('ior', ('ilt', a, c), ('ilt', b, c))),