1 //===-- Detection of _Float16 compiler builtin type -----------------------===// 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 #ifndef LLVM_LIBC_MACROS_FLOAT16_MACROS_H 10 #define LLVM_LIBC_MACROS_FLOAT16_MACROS_H 11 12 #include "../llvm-libc-types/float128.h" 13 14 #if defined(__FLT16_MANT_DIG__) && \ 15 (!defined(__GNUC__) || __GNUC__ >= 13 || defined(__clang__)) && \ 16 !defined(__arm__) && !defined(_M_ARM) && !defined(__riscv) && \ 17 !defined(_WIN32) 18 #define LIBC_TYPES_HAS_FLOAT16 19 20 // TODO: This would no longer be required if HdrGen let us guard function 21 // declarations with multiple macros. 22 #ifdef LIBC_TYPES_HAS_FLOAT128 23 #define LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128 24 #endif // LIBC_TYPES_HAS_FLOAT128 25 #endif 26 27 #endif // LLVM_LIBC_MACROS_FLOAT16_MACROS_H 28