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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-10-29
             Status|UNCONFIRMED                 |NEW

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

This looks like an RA issue with return and argument passing with respect of
hard registers.

Adding `asm("":"+w"(b));` Like:
```
#include <arm_sve.h>
svint32_t foo(svbool_t pg, svint32_t a, svint32_t b)
{
  b = svadd_m (pg, b, a);
  asm("":"+w"(b));
  return b;
}
```

Works around the issue.

Reply via email to