f16 should be okay to pass in GPRs. f16 and f128 can likely get passed in vector or FP registers, but we should prefer to only allow this if an ABI is specified for the type.
Loose list of platforms that specify an ABI:
Additionally, for f128:
- s390x supports
f128, referred to as "BFP Extended Format" in https://publibfp.dhe.ibm.com/epubs/pdf/a227832c.pdf. I am not sure if this comes with any special instructions.
- PowerPC with
-Ctarget-cpu=pwr9 seems to have f128 support via instructions like xsaddqp
Tracking issue: #116909
f16should be okay to pass in GPRs.f16andf128can likely get passed in vector or FP registers, but we should prefer to only allow this if an ABI is specified for the type.Loose list of platforms that specify an ABI:
arm-*,armv7-*,aarch64-*, https://developer.arm.com/documentation/den0024/a/Porting-to-A64/Data-typesf16inline ASM support for 32-bit ARM #126555f16, and the SVP64 feature (which I can't find documented anywhere) adds full hardware supportf16inline ASM support for RISC-V #126530x86specifies an ABI for these types, and AVX512fp16 can use themf16andf128inline ASM support forx86andx86-64#126417s390xsupportsf16x8vectorsf16inline ASM support for s390x #150826Additionally, for
f128:f128, referred to as "BFP Extended Format" in https://publibfp.dhe.ibm.com/epubs/pdf/a227832c.pdf. I am not sure if this comes with any special instructions.-Ctarget-cpu=pwr9seems to have f128 support via instructions likexsaddqpTracking issue: #116909