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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
aarch64 is one of the few targets that has a floating point type which is less
than SImode :).

A simple workaround for this bug is to change the code slightly:
struct sfp16 {
  __fp16 f;
};

struct sfp16 get(short x) {
  union {
    __fp16 f;
    short w;
  } u;
  u.w = x;
  return (struct sfp16){u.f};
}

Reply via email to