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-------------------------------

Reply via email to