https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107546
--- Comment #4 from Hongtao.liu <crazylht at gmail dot com> --- > even. Notice the < vs <= there. > I suspect the <= expansion part of the x86_64 backend needs to be fixed up > to produce better code. Hmm, we do have a extra pcmpeq to negate the result. --------------cut from ix86_expand_int_vec_cmp--------------- rtx cmp = ix86_expand_int_sse_cmp (operands[0], code, operands[2], operands[3], NULL, NULL, &negate); if (!cmp) return false; if (negate) cmp = ix86_expand_int_sse_cmp (operands[0], EQ, cmp, CONST0_RTX (GET_MODE (cmp)), NULL, NULL, &negate); ---------------cut end-------------------------------