https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110986

--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
It turns out we should only turn `(a ? -1 : 0) ^ b` into a conditional not if
that exists.

Even on armv8-a without SVE we get on the trunk:
        cmtst   v31.8h, v31.8h, v31.8h
        eor     v31.16b, v31.16b, v30.16b

vs GCC 13:
        not     v1.16b, v2.16b
        cmeq    v0.8h, v0.8h, #0
        bsl     v0.16b, v2.16b, v1.16b

Anyways still have a patch for the same type case. But it now depends on
getting conditional not in place.

Reply via email to