[PATCH] D131504: [ARM][AArch64] Dont use macros for half instrinsics in NeonEmitter
Sjoerd Meijer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 10 00:21:36 PDT 2022
SjoerdMeijer added a comment.
It's been a few years since I looked at this, so am writing this from memory...
But I have never understood the use of `-fallow-half-arguments-and-return`, and made this remark several times I think on Sander's SVE patches. That option, I think, is from an era before (full) FP16, used for OpenCL types if I remember well, and storage-only FP16. For AArch64, it should not be necessary at all because everything is lovely in AArch64 world: no soft FP and fp16 is always a legal type. For AArch32 that's a whole different story. There we have the different ABIs, and we have a few hacks how values are returned/passed. But again, that depends on the ABI, not on this option. This is the reason why I have never understood the usage of it.
And this comment is true, so my question is why it is okay to remove it?
// It is not permitted to pass or return an __fp16 by value, so intrinsics
// taking a scalar float16_t must be implemented as macros.
So I don't understand what problem this patch is solving, and more general, I wanted to see the usage of `-fallow-half-arguments-and-return` disappear, not be introduced more. But that's with the knowledge I had at the time, perhaps things have changed.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D131504/new/
https://reviews.llvm.org/D131504
More information about the llvm-commits
mailing list