nir/algebraic: Optimize away an fsat of a b2f
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 1 Mar 2019 22:41:59 +0000 (14:41 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Sat, 2 Mar 2019 21:58:56 +0000 (13:58 -0800)
The b2f can only produce 0.0 or 1.0, so the fsat does nothing.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/compiler/nir/nir_opt_algebraic.py

index b49f1a131617d100e1d246760288cc01644993d4..617ca0ea93349d27c4dfb9f435a19d5658948461 100644 (file)
@@ -337,6 +337,7 @@ optimizations = [
    (('~fmin', ('fmax', a, 0.0), 1.0), ('fsat', a), '!options->lower_fsat'),
    (('~fmax', ('fmin', a, 1.0), 0.0), ('fsat', a), '!options->lower_fsat'),
    (('fsat', ('fsign', a)), ('b2f', ('flt', 0.0, a))),
+   (('fsat', ('b2f', a)), ('b2f', a)),
    (('fsat', a), ('fmin', ('fmax', a, 0.0), 1.0), 'options->lower_fsat'),
    (('fsat', ('fsat', a)), ('fsat', a)),
    (('fmin', ('fmax', ('fmin', ('fmax', a, b), c), b), c), ('fmin', ('fmax', a, b), c)),