On 18/01/16 11:31, Andreas Schwab wrote:
Jeff Law <l...@redhat.com> writes:

commit 1384b36abcd52a7ac72ca6538afa2aed2e04f8e0
Author: Jeff Law <l...@tor.usersys.redhat.com>
Date:   Fri Jan 15 17:15:24 2016 -0500

        PR tree-optimization/69270
        * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
        tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
        * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
        * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
        * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
        ssa_name_has_boolean_range and constant_boolean_node.
PR tree-optimization/69270
        * gcc.dg/tree-ssa/pr69270-2.c: New test.
        * gcc.dg/tree-ssa/pr69270-3.c: New test.
This breaks gcc.target/aarch64/tst_3.c.

        //.tune generic
        .type   f1, %function
  f1:
-       tst     x0, 1
-       csinc   w0, w0, wzr, eq
+       ands    w1, w0, 1
+       csel    w0, w1, w0, ne
        ret
        .size   f1, .-f1

The two sequences look equally valid to me.
Instead of doing an and-compare followed by a conditional increment
we do an and-compare followed by a conditional select (without discarding
the result of the and).
So the testcase should be adjusted.
I'll do it.

Thanks,
Kyrill

Andreas.


Reply via email to