https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61194
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2014-05-15
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
Summary|[4.9 Regression] |[4.9/4.10 Regression]
|vectorization failed with |vectorization failed with
|"bit-precision arithmetic |"bit-precision arithmetic
|not supported" even if |not supported" even if
|conversion to int is |conversion to int is
|requested |requested
Ever confirmed|0 |1
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
I see on trunk after if-conversion
_6 = _5 > 0.0;
_9 = _7 < _8;
_10 = _9 & _6;
_11 = (int) _10;
k[i_18] = _11;
iftmp.0_13 = z[i_18];
iftmp.0_2 = _10 ? iftmp.0_13 : _8;
z[i_18] = iftmp.0_2;
so what happens is that we do have "bit-precision" arithmetic with the
bitwise and.
This is a regression because of the way we lower comparisons now I guess.
I will have a look.