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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Target|                            |x86_64-linux-gnu
          Component|middle-end                  |target

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This is just IV-OPTs going wrong.

One thing which I will note does improve the code is doing:



        __m128 n = _mm_cmpneq_ps(res, res);
        int need = _mm_movemask_ps(n);
        if (UNLIKELY(need)) {
            comp_mult(r, a, b, i); 
        } else
            _mm_store_ps((float*)&r[i], res);

Reply via email to