xref: /freebsd/contrib/llvm-project/llvm/include/llvm/Support/float128.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1 //===-- llvm/Support/float128.h - Compiler abstraction support --*- 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 #ifndef LLVM_FLOAT128
10 #define LLVM_FLOAT128
11 
12 namespace llvm {
13 
14 #if defined(__clang__) && defined(__FLOAT128__) &&                             \
15     defined(__SIZEOF_INT128__) && !defined(__LONG_DOUBLE_IBM128__)
16 #define HAS_IEE754_FLOAT128
17 typedef __float128 float128;
18 #elif defined(__FLOAT128__) && defined(__SIZEOF_INT128__) &&                   \
19     !defined(__LONG_DOUBLE_IBM128__) &&                                        \
20     (defined(__GNUC__) || defined(__GNUG__))
21 #define HAS_IEE754_FLOAT128
22 typedef _Float128 float128;
23 #endif
24 
25 } // namespace llvm
26 #endif // LLVM_FLOAT128
27