https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105175
--- Comment #2 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- I would expect the vectorizer to only generate vector modes which would fit into word mode if no hardware vector support is available. E.g. for: struct { unsigned a, b, c, d; } s; foo() { s.a &= 42; s.b &= 42; s.c &= 42; s.d &= 42; } I see two "vector 2 unsigned" operations being generated when compiling with -mno-sse but with sse I get a 4 element vector as expected.