https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78102
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Target| |x86_64-*-*, i?86-*-* Target Milestone|--- |5.5 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- IL before vector lowering: pcmpeqq (const __m128i x, const __m128i y) { vector(2) long int _4; <bb 2>: _4 = VEC_COND_EXPR <x_2(D) == y_3(D), { -1, -1 }, { 0, 0 }>; return _4; } I suppose sse4.1 has only equality compares but not relational ones. We're missing an optab for this special case and thus can't expand the above. This means using GCC vector extensions in the header for the intrinsic was a bad idea in this particular case.