On Mon, Jan 18, 2016 at 11:38:37AM +0000, Kyrill Tkachov wrote:
> On 18/01/16 11:31, Andreas Schwab wrote:
> >Jeff Law <[email protected]> writes:
> >
> >>commit 1384b36abcd52a7ac72ca6538afa2aed2e04f8e0
> >>Author: Jeff Law <[email protected]>
> >>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.
IMHO please wait for the resolution of PR69320 here.
Jakub