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.

Reply via email to