1 //===-- lib/extendhfsf2.c - half -> single conversion -------------*- C -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #define SRC_HALF 10 #define DST_SINGLE 11 #include "fp_extend_impl.inc" 12 13 // Use a forwarding definition and noinline to implement a poor man's alias, 14 // as there isn't a good cross-platform way of defining one. __extendhfsf2(uint16_t a)15COMPILER_RT_ABI NOINLINE float __extendhfsf2(uint16_t a) { 16 return __extendXfYf2__(a); 17 } 18 __gnu_h2f_ieee(uint16_t a)19COMPILER_RT_ABI float __gnu_h2f_ieee(uint16_t a) { return __extendhfsf2(a); } 20 21 #if defined(__ARM_EABI__) 22 #if defined(COMPILER_RT_ARMHF_TARGET) __aeabi_h2f(uint16_t a)23AEABI_RTABI float __aeabi_h2f(uint16_t a) { return __extendhfsf2(a); } 24 #else 25 COMPILER_RT_ALIAS(__extendhfsf2, __aeabi_h2f) 26 #endif 27 #endif 28