|
92 | 92 | # define _CCCL_BUILTIN_ACOSL(...) __builtin_acosl(__VA_ARGS__) |
93 | 93 | #endif // _CCCL_CHECK_BUILTIN(builtin_acos) |
94 | 94 |
|
| 95 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 96 | +# undef _CCCL_BUILTIN_ACOSF |
| 97 | +# undef _CCCL_BUILTIN_ACOS |
| 98 | +# undef _CCCL_BUILTIN_ACOSL |
| 99 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 100 | + |
95 | 101 | #if _CCCL_CHECK_BUILTIN(builtin_acosh) || _CCCL_COMPILER(GCC) |
96 | 102 | # define _CCCL_BUILTIN_ACOSHF(...) __builtin_acoshf(__VA_ARGS__) |
97 | 103 | # define _CCCL_BUILTIN_ACOSH(...) __builtin_acosh(__VA_ARGS__) |
98 | 104 | # define _CCCL_BUILTIN_ACOSHL(...) __builtin_acoshl(__VA_ARGS__) |
99 | 105 | #endif // _CCCL_CHECK_BUILTIN(builtin_acosh) |
100 | 106 |
|
| 107 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 108 | +# undef _CCCL_BUILTIN_ACOSHF |
| 109 | +# undef _CCCL_BUILTIN_ACOSH |
| 110 | +# undef _CCCL_BUILTIN_ACOSHL |
| 111 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 112 | + |
101 | 113 | // nvhpc has a bug where it supports __builtin_addressof but does not mark it via _CCCL_CHECK_BUILTIN |
102 | 114 | #if _CCCL_CHECK_BUILTIN(builtin_addressof) || _CCCL_COMPILER(GCC, >=, 7) || _CCCL_COMPILER(MSVC) \ |
103 | 115 | || _CCCL_COMPILER(NVHPC) |
|
108 | 120 | # define _CCCL_BUILTIN_ASINF(...) __builtin_asinf(__VA_ARGS__) |
109 | 121 | # define _CCCL_BUILTIN_ASIN(...) __builtin_asin(__VA_ARGS__) |
110 | 122 | # define _CCCL_BUILTIN_ASINL(...) __builtin_asinl(__VA_ARGS__) |
111 | | -#endif // _CCCL_CHECK_BUILTIN(builtin_asinh) |
| 123 | +#endif // _CCCL_CHECK_BUILTIN(builtin_asin) |
| 124 | + |
| 125 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 126 | +# undef _CCCL_BUILTIN_ASINF |
| 127 | +# undef _CCCL_BUILTIN_ASIN |
| 128 | +# undef _CCCL_BUILTIN_ASINL |
| 129 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
112 | 130 |
|
113 | 131 | #if _CCCL_CHECK_BUILTIN(builtin_asinh) || _CCCL_COMPILER(GCC) |
114 | 132 | # define _CCCL_BUILTIN_ASINHF(...) __builtin_asinhf(__VA_ARGS__) |
115 | 133 | # define _CCCL_BUILTIN_ASINH(...) __builtin_asinh(__VA_ARGS__) |
116 | 134 | # define _CCCL_BUILTIN_ASINHL(...) __builtin_asinhl(__VA_ARGS__) |
117 | 135 | #endif // _CCCL_CHECK_BUILTIN(builtin_asin) |
118 | 136 |
|
| 137 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 138 | +# undef _CCCL_BUILTIN_ASINHF |
| 139 | +# undef _CCCL_BUILTIN_ASINH |
| 140 | +# undef _CCCL_BUILTIN_ASINHL |
| 141 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 142 | + |
119 | 143 | #if _CCCL_CHECK_BUILTIN(builtin_assume) || _CCCL_COMPILER(CLANG) || _CCCL_COMPILER(NVHPC) |
120 | 144 | # define _CCCL_BUILTIN_ASSUME(...) __builtin_assume(__VA_ARGS__) |
121 | 145 | #elif _CCCL_COMPILER(GCC, >=, 13) |
|
138 | 162 | # define _CCCL_BUILTIN_ATANL(...) __builtin_atanl(__VA_ARGS__) |
139 | 163 | #endif // _CCCL_CHECK_BUILTIN(builtin_atan) |
140 | 164 |
|
| 165 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 166 | +# undef _CCCL_BUILTIN_ATANF |
| 167 | +# undef _CCCL_BUILTIN_ATAN |
| 168 | +# undef _CCCL_BUILTIN_ATANL |
| 169 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 170 | + |
141 | 171 | #if _CCCL_CHECK_BUILTIN(builtin_atan2) || _CCCL_COMPILER(GCC) |
142 | 172 | # define _CCCL_BUILTIN_ATAN2F(...) __builtin_atan2f(__VA_ARGS__) |
143 | 173 | # define _CCCL_BUILTIN_ATAN2(...) __builtin_atan2(__VA_ARGS__) |
144 | 174 | # define _CCCL_BUILTIN_ATAN2L(...) __builtin_atan2l(__VA_ARGS__) |
145 | 175 | #endif // _CCCL_CHECK_BUILTIN(builtin_atan2) |
146 | 176 |
|
| 177 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 178 | +# undef _CCCL_BUILTIN_ATAN2F |
| 179 | +# undef _CCCL_BUILTIN_ATAN2 |
| 180 | +# undef _CCCL_BUILTIN_ATAN2L |
| 181 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 182 | + |
147 | 183 | #if _CCCL_CHECK_BUILTIN(builtin_atanh) || _CCCL_COMPILER(GCC) |
148 | 184 | # define _CCCL_BUILTIN_ATANHF(...) __builtin_atanhf(__VA_ARGS__) |
149 | 185 | # define _CCCL_BUILTIN_ATANH(...) __builtin_atanh(__VA_ARGS__) |
150 | 186 | # define _CCCL_BUILTIN_ATANHL(...) __builtin_atanhl(__VA_ARGS__) |
151 | 187 | #endif // _CCCL_CHECK_BUILTIN(builtin_atanh) |
152 | 188 |
|
| 189 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 190 | +# undef _CCCL_BUILTIN_ATANHF |
| 191 | +# undef _CCCL_BUILTIN_ATANH |
| 192 | +# undef _CCCL_BUILTIN_ATANHL |
| 193 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 194 | + |
153 | 195 | // MSVC supports __builtin_bit_cast from 19.25 on |
154 | 196 | #if _CCCL_CHECK_BUILTIN(builtin_bit_cast) || _CCCL_COMPILER(MSVC, >, 19, 25) |
155 | 197 | # define _CCCL_BUILTIN_BIT_CAST(...) __builtin_bit_cast(__VA_ARGS__) |
|
230 | 272 | # define _CCCL_BUILTIN_COSL(...) __builtin_cosl(__VA_ARGS__) |
231 | 273 | #endif // _CCCL_CHECK_BUILTIN(builtin_cos) |
232 | 274 |
|
| 275 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 276 | +# undef _CCCL_BUILTIN_COSF |
| 277 | +# undef _CCCL_BUILTIN_COS |
| 278 | +# undef _CCCL_BUILTIN_COSL |
| 279 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 280 | + |
233 | 281 | #if _CCCL_CHECK_BUILTIN(builtin_cosh) || _CCCL_COMPILER(GCC) |
234 | 282 | # define _CCCL_BUILTIN_COSHF(...) __builtin_coshf(__VA_ARGS__) |
235 | 283 | # define _CCCL_BUILTIN_COSH(...) __builtin_cosh(__VA_ARGS__) |
236 | 284 | # define _CCCL_BUILTIN_COSHL(...) __builtin_coshl(__VA_ARGS__) |
237 | | -#endif // _CCCL_CHECK_BUILTIN(builtin_cos) |
| 285 | +#endif // _CCCL_CHECK_BUILTIN(builtin_cosh) |
| 286 | + |
| 287 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 288 | +# undef _CCCL_BUILTIN_COSHF |
| 289 | +# undef _CCCL_BUILTIN_COSH |
| 290 | +# undef _CCCL_BUILTIN_COSHL |
| 291 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
238 | 292 |
|
239 | 293 | #if _CCCL_CHECK_BUILTIN(builtin_exp) || _CCCL_COMPILER(GCC) |
240 | 294 | # define _CCCL_BUILTIN_EXPF(...) __builtin_expf(__VA_ARGS__) |
|
346 | 400 | # define _CCCL_BUILTIN_HYPOTL(...) __builtin_hypotl(__VA_ARGS__) |
347 | 401 | #endif // _CCCL_CHECK_BUILTIN(builtin_hypot) |
348 | 402 |
|
| 403 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 404 | +# undef _CCCL_BUILTIN_HYPOTF |
| 405 | +# undef _CCCL_BUILTIN_HYPOT |
| 406 | +# undef _CCCL_BUILTIN_HYPOTL |
| 407 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 408 | + |
349 | 409 | #if _CCCL_CHECK_BUILTIN(builtin_is_constant_evaluated) || _CCCL_COMPILER(GCC, >=, 9) || _CCCL_COMPILER(MSVC, >, 19, 24) |
350 | 410 | # define _CCCL_BUILTIN_IS_CONSTANT_EVALUATED(...) __builtin_is_constant_evaluated(__VA_ARGS__) |
351 | 411 | #endif // _CCCL_CHECK_BUILTIN(builtin_is_constant_evaluated) |
|
385 | 445 | # define _CCCL_BUILTIN_LGAMMAL(...) __builtin_lgammal(__VA_ARGS__) |
386 | 446 | #endif // _CCCL_CHECK_BUILTIN(builtin_lgamma) |
387 | 447 |
|
| 448 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 449 | +# undef _CCCL_BUILTIN_LGAMMAF |
| 450 | +# undef _CCCL_BUILTIN_LGAMMA |
| 451 | +# undef _CCCL_BUILTIN_LGAMMAL |
| 452 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 453 | + |
388 | 454 | #if _CCCL_HAS_BUILTIN(__builtin_LINE) || _CCCL_COMPILER(GCC) || _CCCL_COMPILER(MSVC, >=, 19, 27) |
389 | 455 | # define _CCCL_BUILTIN_LINE() __builtin_LINE() |
390 | 456 | #else // ^^^ _CCCL_HAS_BUILTIN(__builtin_LINE) ^^^ / vvv !_CCCL_HAS_BUILTIN(__builtin_LINE) vvv |
|
665 | 731 | # define _CCCL_BUILTIN_SINL(...) __builtin_sinl(__VA_ARGS__) |
666 | 732 | #endif // _CCCL_CHECK_BUILTIN(builtin_sin) |
667 | 733 |
|
| 734 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 735 | +# undef _CCCL_BUILTIN_SINF |
| 736 | +# undef _CCCL_BUILTIN_SIN |
| 737 | +# undef _CCCL_BUILTIN_SINL |
| 738 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 739 | + |
668 | 740 | #if _CCCL_CHECK_BUILTIN(builtin_sinh) || _CCCL_COMPILER(GCC) |
669 | 741 | # define _CCCL_BUILTIN_SINHF(...) __builtin_sinhf(__VA_ARGS__) |
670 | 742 | # define _CCCL_BUILTIN_SINH(...) __builtin_sinh(__VA_ARGS__) |
671 | 743 | # define _CCCL_BUILTIN_SINHL(...) __builtin_sinhl(__VA_ARGS__) |
672 | 744 | #endif // _CCCL_CHECK_BUILTIN(builtin_sin) |
673 | 745 |
|
| 746 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 747 | +# undef _CCCL_BUILTIN_SINHF |
| 748 | +# undef _CCCL_BUILTIN_SINH |
| 749 | +# undef _CCCL_BUILTIN_SINHL |
| 750 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 751 | + |
674 | 752 | #if _CCCL_CHECK_BUILTIN(builtin_sqrt) || _CCCL_COMPILER(GCC) |
675 | 753 | # define _CCCL_BUILTIN_SQRTF(...) __builtin_sqrtf(__VA_ARGS__) |
676 | 754 | # define _CCCL_BUILTIN_SQRT(...) __builtin_sqrt(__VA_ARGS__) |
|
683 | 761 | # define _CCCL_BUILTIN_TANL(...) __builtin_tanl(__VA_ARGS__) |
684 | 762 | #endif // _CCCL_CHECK_BUILTIN(builtin_tan) |
685 | 763 |
|
| 764 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 765 | +# undef _CCCL_BUILTIN_TANF |
| 766 | +# undef _CCCL_BUILTIN_TAN |
| 767 | +# undef _CCCL_BUILTIN_TANL |
| 768 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 769 | + |
686 | 770 | #if _CCCL_CHECK_BUILTIN(builtin_tanh) || _CCCL_COMPILER(GCC) |
687 | 771 | # define _CCCL_BUILTIN_TANHF(...) __builtin_tanhf(__VA_ARGS__) |
688 | 772 | # define _CCCL_BUILTIN_TANH(...) __builtin_tanh(__VA_ARGS__) |
689 | 773 | # define _CCCL_BUILTIN_TANHL(...) __builtin_tanhl(__VA_ARGS__) |
690 | 774 | #endif // _CCCL_CHECK_BUILTIN(builtin_tan) |
691 | 775 |
|
| 776 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 777 | +# undef _CCCL_BUILTIN_TANHF |
| 778 | +# undef _CCCL_BUILTIN_TANH |
| 779 | +# undef _CCCL_BUILTIN_TANHL |
| 780 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 781 | + |
692 | 782 | #if _CCCL_CHECK_BUILTIN(builtin_tgamma) || _CCCL_COMPILER(GCC) |
693 | 783 | # define _CCCL_BUILTIN_TGAMMAF(...) __builtin_tgammaf(__VA_ARGS__) |
694 | 784 | # define _CCCL_BUILTIN_TGAMMA(...) __builtin_tgamma(__VA_ARGS__) |
695 | 785 | # define _CCCL_BUILTIN_TGAMMAL(...) __builtin_tgammal(__VA_ARGS__) |
696 | 786 | #endif // _CCCL_CHECK_BUILTIN(builtin_tgamma) |
697 | 787 |
|
| 788 | +#if _CCCL_CUDA_COMPILER(CLANG) |
| 789 | +# undef _CCCL_BUILTIN_TGAMMAF |
| 790 | +# undef _CCCL_BUILTIN_TGAMMA |
| 791 | +# undef _CCCL_BUILTIN_TGAMMAL |
| 792 | +#endif // _CCCL_CUDA_COMPILER(CLANG) |
| 793 | + |
698 | 794 | #if _CCCL_CHECK_BUILTIN(builtin_trunc) || _CCCL_COMPILER(GCC) |
699 | 795 | # define _CCCL_BUILTIN_TRUNCF(...) __builtin_truncf(__VA_ARGS__) |
700 | 796 | # define _CCCL_BUILTIN_TRUNC(...) __builtin_trunc(__VA_ARGS__) |
|
0 commit comments