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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2019-08-24
           Assignee|unassigned at gcc dot gnu.org      |ubizjak at gmail dot com
   Target Milestone|---                         |8.3
     Ever confirmed|0                           |1

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Matthias Kretz from comment #0)
> Test case (cf. https://godbolt.org/z/IfL1mF):
> 
> using V [[gnu::vector_size(8)]] = int;
> 
> V f(V a, long double& x) {
>     a = a < 0 ? -a : a;
>     x += 1;
>     return a;
> }
> 
> Compile with e.g. `-O2 -march=skylake`. This generates a call to `PABSD mm1,
> mm2/m64` but fails to call `EMMS`. It even interleaves the FPU instructions
> with the MMX instructions. GCC 10 has a fix, it simply calls `PABSD xmm1,
> xmm2/m128`.

Yes, I have to backport the fix. MMX patterns should not be named.

Reply via email to