On Thu, Mar 10, 2016 at 3:08 PM, Patrick Baggett <baggett.patr...@gmail.com> wrote: > On Thu, Mar 10, 2016 at 12:25 PM, Ian Romanick <i...@freedesktop.org> wrote: >> From: Ian Romanick <ian.d.roman...@intel.com> >> >> Sandy Bridge / Ivy Bridge / Haswell >> total instructions in shared programs: 8462180 -> 8462174 (-0.00%) >> instructions in affected programs: 564 -> 558 (-1.06%) >> helped: 6 >> HURT: 0 >> >> total cycles in shared programs: 117542462 -> 117542276 (-0.00%) >> cycles in affected programs: 9768 -> 9582 (-1.90%) >> helped: 12 >> HURT: 0 >> >> Broadwell / Skylake >> total instructions in shared programs: 8980833 -> 8980826 (-0.00%) >> instructions in affected programs: 626 -> 619 (-1.12%) >> helped: 7 >> HURT: 0 >> >> total cycles in shared programs: 70077900 -> 70077714 (-0.00%) >> cycles in affected programs: 9378 -> 9192 (-1.98%) >> helped: 12 >> HURT: 0 >> >> G45 and Ironlake showed no change. >> >> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> >> --- >> src/compiler/nir/nir_opt_algebraic.py | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/src/compiler/nir/nir_opt_algebraic.py >> b/src/compiler/nir/nir_opt_algebraic.py >> index 4db8f84..1442ce8 100644 >> --- a/src/compiler/nir/nir_opt_algebraic.py >> +++ b/src/compiler/nir/nir_opt_algebraic.py >> @@ -108,6 +108,11 @@ optimizations = [ >> # inot(a) >> (('fge', 0.0, ('b2f', a)), ('inot', a)), >> >> + # 0.0 < fabs(a) >> + # 0.0 != fabs(a) because fabs(a) must be >= 0 > I think this is wrong. Because >= 0.0 can mean that fabs(a) == 0.0 for > some a, you can't say then fabs(a) != 0.0. > > Then, the counter-example is when a = 0.0 > > 1) 0.0 != fabs(0.0) > 2) 0.0 != 0.0 > Rather, I mean the comment is wrong, but the conclusion that: 0 < fabs(a) <-> a != 0.0 is correct. You can just build a truth table or just observe that when a == 0, 0 < 0 is false, and when a != 0.0, fabs(a) will be > 0, so 0 < fabs(a) will be always true.
>> + # 0.0 != a > > > > >> + (('flt', 0.0, ('fabs', a)), ('fne', a, 0.0)), >> + >> (('fge', ('fneg', ('fabs', a)), 0.0), ('feq', a, 0.0)), >> (('bcsel', ('flt', a, b), a, b), ('fmin', a, b)), >> (('bcsel', ('flt', a, b), b, a), ('fmax', a, b)), >> -- >> 2.5.0 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev