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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---

v2di cmpneq_pd1(v2df a, v2df b)
{
    return ((v2di)(a==b) ^ set1_epi8(0xFF));
}
Produces the correct thing on gimple level:
  _5 = .VCOND (a_2(D), b_3(D), { 0, 0 }, { -1, -1 }, 113);

But the RTL during combine (even with -ffast-math) produces:
(set (reg:V2DI 82 [ <retval> ])
    (not:V2DI (eq:V2DI (reg:V2DF 89)
            (reg:V2DF 90))))

Reply via email to