https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109721
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Huh, we indeed vectorize count_averages (). But I have no idea how the offending rev should have changed this ... Ah. Before we had gcc.dg/tree-ssa/predcom-2.c:27:55: missed: not vectorized: relevant stmt not supported: _9 = _8 & 65535; but now we let this slip through with gcc.dg/tree-ssa/predcom-2.c:26:17: note: proceeding using word mode. but we do not actually use word_mode. Later veclower decomposes the bitwise vector and: - vect__9.38_33 = vect__8.37_31 & { 65535, 65535 }; + _26 = BIT_FIELD_REF <vect__8.37_31, 32, 0>; + _19 = _26 & 65535; + _23 = BIT_FIELD_REF <vect__8.37_31, 32, 32>; + _10 = _23 & 65535; + vect__9.38_33 = {_19, _10}; Btw, when writing the patch I noticed we let SImode AND through when target_support_p even though it isn't word_mode and I didn't want to change that but had to catch the case where SImode PLUS is supported (well, obviously...) but emulated vectors rely on it being word_mode. I'm going to amend this more. But maybe this arch is also missing bit operation vector support for some unknown reason.