[PATCH] D90175: [AArch64] Support conversion between fp16 and fp128

Oliver Stannard (Linaro) via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 18 01:47:51 PST 2020


ostannard added a comment.

> They are enabled iff the compiler supports _Float16.

Why are these not enabled for compilers which don't support _Float16? There is also the __fp16 type, which has been supported for much longer and could also generate code like this.

> It also adjust the extendhfsf2, truncdfhf2 __truncsfhf2 to use _Float16 when compiler supports it.

This would be better (easier to review, bisect, etc) if split into a separate patch.

> On AArch64 it allows use the native FP16 ABI,.

Why is changing the ABI of these functions (including the existing 16<->32 and 16<->64 bit ones) OK? Wouldn't this cause problems if linking clang-compiled code against libgcc? I also don't see any changes to tell the compiler that the ABI has changed.

> while on other architectures the expected current semantic is preserved (arm for instance).

Are you sure about this? ARM has a hard-float ABI which passes fp16 values in FP registers, and I'd expect some other architectures to have different calling conventions for uint16_t vs _Float16.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90175/new/

https://reviews.llvm.org/D90175



More information about the llvm-commits mailing list