[flang] Fix crash in HLFIR generation (#118399)
[llvm-project.git] / libc / include / llvm-libc-macros / float-macros.h
bloba25ef60a293d3678d1fce0a18f04c98c1c8f51f1
1 //===-- Definition of macros from float.h ---------------------------------===//
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 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_LIBC_MACROS_FLOAT_MACROS_H
10 #define LLVM_LIBC_MACROS_FLOAT_MACROS_H
12 #ifndef FLT_RADIX
13 #define FLT_RADIX __FLT_RADIX__
14 #endif // FLT_RADIX
16 #ifndef FLT_EVAL_METHOD
17 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
18 #endif // FLT_EVAL_METHOD
20 #ifndef FLT_ROUNDS
21 #if __has_builtin(__builtin_flt_rounds)
22 #define FLT_ROUNDS __builtin_flt_rounds()
23 #else
24 #define FLT_ROUNDS 1
25 #endif
26 #endif // FLT_ROUNDS
28 #ifndef FLT_DECIMAL_DIG
29 #define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
30 #endif // FLT_DECIMAL_DIG
32 #ifndef DBL_DECIMAL_DIG
33 #define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
34 #endif // DBL_DECIMAL_DIG
36 #ifndef LDBL_DECIMAL_DIG
37 #define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
38 #endif // LDBL_DECIMAL_DIG
40 #ifndef DECIMAL_DIG
41 #define DECIMAL_DIG __DECIMAL_DIG__
42 #endif // DECIMAL_DIG
44 #ifndef FLT_DIG
45 #define FLT_DIG __FLT_DIG__
46 #endif // FLT_DIG
48 #ifndef DBL_DIG
49 #define DBL_DIG __DBL_DIG__
50 #endif // DBL_DIG
52 #ifndef LDBL_DIG
53 #define LDBL_DIG __LDBL_DIG__
54 #endif // LDBL_DIG
56 #ifndef FLT_MANT_DIG
57 #define FLT_MANT_DIG __FLT_MANT_DIG__
58 #endif // FLT_MANT_DIG
60 #ifndef DBL_MANT_DIG
61 #define DBL_MANT_DIG __DBL_MANT_DIG__
62 #endif // DBL_MANT_DIG
64 #ifndef LDBL_MANT_DIG
65 #define LDBL_MANT_DIG __LDBL_MANT_DIG__
66 #endif // LDBL_MANT_DIG
68 #ifndef FLT_MIN
69 #define FLT_MIN __FLT_MIN__
70 #endif // FLT_MIN
72 #ifndef DBL_MIN
73 #define DBL_MIN __DBL_MIN__
74 #endif // DBL_MIN
76 #ifndef LDBL_MIN
77 #define LDBL_MIN __LDBL_MIN__
78 #endif // LDBL_MIN
80 #ifndef FLT_MAX
81 #define FLT_MAX __FLT_MAX__
82 #endif // FLT_MAX
84 #ifndef DBL_MAX
85 #define DBL_MAX __DBL_MAX__
86 #endif // DBL_MAX
88 #ifndef LDBL_MAX
89 #define LDBL_MAX __LDBL_MAX__
90 #endif // LDBL_MAX
92 #ifndef FLT_TRUE_MIN
93 #define FLT_TRUE_MIN __FLT_DENORM_MIN__
94 #endif // FLT_TRUE_MIN
96 #ifndef DBL_TRUE_MIN
97 #define DBL_TRUE_MIN __DBL_DENORM_MIN__
98 #endif // DBL_TRUE_MIN
100 #ifndef LDBL_TRUE_MIN
101 #define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
102 #endif // LDBL_TRUE_MIN
104 #ifndef FLT_EPSILON
105 #define FLT_EPSILON __FLT_EPSILON__
106 #endif // FLT_EPSILON
108 #ifndef DBL_EPSILON
109 #define DBL_EPSILON __DBL_EPSILON__
110 #endif // DBL_EPSILON
112 #ifndef LDBL_EPSILON
113 #define LDBL_EPSILON __LDBL_EPSILON__
114 #endif // LDBL_EPSILON
116 #ifndef FLT_MIN_EXP
117 #define FLT_MIN_EXP __FLT_MIN_EXP__
118 #endif // FLT_MIN_EXP
120 #ifndef DBL_MIN_EXP
121 #define DBL_MIN_EXP __DBL_MIN_EXP__
122 #endif // DBL_MIN_EXP
124 #ifndef LDBL_MIN_EXP
125 #define LDBL_MIN_EXP __LDBL_MIN_EXP__
126 #endif // LDBL_MIN_EXP
128 #ifndef FLT_MIN_10_EXP
129 #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
130 #endif // FLT_MIN_10_EXP
132 #ifndef DBL_MIN_10_EXP
133 #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
134 #endif // DBL_MIN_10_EXP
136 #ifndef LDBL_MIN_10_EXP
137 #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
138 #endif // LDBL_MIN_10_EXP
140 #ifndef FLT_MAX_EXP
141 #define FLT_MAX_EXP __FLT_MAX_EXP__
142 #endif // FLT_MAX_EXP
144 #ifndef DBL_MAX_EXP
145 #define DBL_MAX_EXP __DBL_MAX_EXP__
146 #endif // DBL_MAX_EXP
148 #ifndef LDBL_MAX_EXP
149 #define LDBL_MAX_EXP __LDBL_MAX_EXP__
150 #endif // LDBL_MAX_EXP
152 #ifndef FLT_MAX_10_EXP
153 #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
154 #endif // FLT_MAX_10_EXP
156 #ifndef DBL_MAX_10_EXP
157 #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
158 #endif // DBL_MAX_10_EXP
160 #ifndef LDBL_MAX_10_EXP
161 #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
162 #endif // LDBL_MAX_10_EXP
164 #ifndef FLT_HAS_SUBNORM
165 #define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
166 #endif // FLT_HAS_SUBNORM
168 #ifndef DBL_HAS_SUBNORM
169 #define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
170 #endif // DBL_HAS_SUBNORM
172 #ifndef LDBL_HAS_SUBNORM
173 #define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
174 #endif // LDBL_HAS_SUBNORM
176 // TODO: Add FLT16 and FLT128 constants.
178 #endif // LLVM_LIBC_MACROS_FLOAT_MACROS_H