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

--- Comment #1 from Carrot <carrot at google dot com> ---
In arm_neon.h, we have

__extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
vqdmulhq_n_s16 (int16x8_t a, int16_t b)
{
  int16x8_t result;
  __asm__ ("sqdmulh %0.8h,%1.8h,%2.h[0]"
           : "=w"(result)
           : "w"(a), "w"(b)
           : /* No clobbers */);
  return result;
}

The register constraint for the last operand of sqdmulh is "w", it means
FP_REGS, the correct constraint should be "x", means FP_LO_REGS.

The trunk has the same problem.

Reply via email to