labrinea added inline comments. ================ Comment at: lib/Basic/Targets.cpp:4685-4686 @@ +4684,4 @@ + // ACLE 6.5.2 Half-precision (16-bit) floating-point format + if (HW_FP & HW_FP_HP) + Builder.defineMacro("__ARM_FP16_FORMAT_IEEE", "1"); + ---------------- olista01 wrote: > labrinea wrote: > > olista01 wrote: > > > The __fp16 type is accepted even if it is not supported by the hardware > > > (library calls are emitted instead), so this can be defined > > > unconditionally. I'm currently working on D12148, which also sets this > > > and _ARM_FP16_ARGS. > > Good point. As far as I know there is hardware support for having _fp16 > > type values as function arguments but not as return values (yet). If so, > > should _ARM_FP16_ARGS macro be defined or not? (ACLE 2.0: "_ARM_FP16_ARGS > > is defined to 1 if __fp16 can be used as an argument and result.") > Support for __fp16 args/returns should be independent of hardware support (at > least in clang/llvm), as we can always lower to library function calls. > > For AArch32: There is currently no support for __fp16 arguments or returns, > but D12148 adds both of these, and sets the predefine. > > For AArch64: There has been support for __fp16 args and returns for about a > year, but we only recently turned the predefine on (D12240/rL245833). Good. I will update this patch accordingly.
http://reviews.llvm.org/D12244 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits