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.