llvm-runtime-resources-darwin 0.0.0 → 22.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +33 -0
  3. package/include/__clang_cuda_builtin_vars.h +121 -0
  4. package/include/__clang_cuda_cmath.h +512 -0
  5. package/include/__clang_cuda_complex_builtins.h +229 -0
  6. package/include/__clang_cuda_device_functions.h +1572 -0
  7. package/include/__clang_cuda_intrinsics.h +994 -0
  8. package/include/__clang_cuda_libdevice_declares.h +468 -0
  9. package/include/__clang_cuda_math.h +353 -0
  10. package/include/__clang_cuda_math_forward_declares.h +284 -0
  11. package/include/__clang_cuda_runtime_wrapper.h +522 -0
  12. package/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/include/__clang_hip_cmath.h +848 -0
  14. package/include/__clang_hip_libdevice_declares.h +340 -0
  15. package/include/__clang_hip_math.h +1405 -0
  16. package/include/__clang_hip_runtime_wrapper.h +165 -0
  17. package/include/__clang_hip_stdlib.h +43 -0
  18. package/include/__clang_spirv_builtins.h +217 -0
  19. package/include/__float_float.h +176 -0
  20. package/include/__float_header_macro.h +12 -0
  21. package/include/__float_infinity_nan.h +20 -0
  22. package/include/__stdarg___gnuc_va_list.h +13 -0
  23. package/include/__stdarg___va_copy.h +12 -0
  24. package/include/__stdarg_header_macro.h +12 -0
  25. package/include/__stdarg_va_arg.h +22 -0
  26. package/include/__stdarg_va_copy.h +12 -0
  27. package/include/__stdarg_va_list.h +13 -0
  28. package/include/__stddef_header_macro.h +12 -0
  29. package/include/__stddef_max_align_t.h +27 -0
  30. package/include/__stddef_null.h +29 -0
  31. package/include/__stddef_nullptr_t.h +29 -0
  32. package/include/__stddef_offsetof.h +17 -0
  33. package/include/__stddef_ptrdiff_t.h +20 -0
  34. package/include/__stddef_rsize_t.h +20 -0
  35. package/include/__stddef_size_t.h +20 -0
  36. package/include/__stddef_unreachable.h +21 -0
  37. package/include/__stddef_wchar_t.h +28 -0
  38. package/include/__stddef_wint_t.h +15 -0
  39. package/include/__wmmintrin_aes.h +140 -0
  40. package/include/__wmmintrin_pclmul.h +48 -0
  41. package/include/adcintrin.h +165 -0
  42. package/include/adxintrin.h +107 -0
  43. package/include/altivec.h +19364 -0
  44. package/include/amdgpuintrin.h +191 -0
  45. package/include/ammintrin.h +183 -0
  46. package/include/amo.h +131 -0
  47. package/include/amxavx512intrin.h +596 -0
  48. package/include/amxcomplexintrin.h +167 -0
  49. package/include/amxfp16intrin.h +93 -0
  50. package/include/amxfp8intrin.h +230 -0
  51. package/include/amxintrin.h +492 -0
  52. package/include/amxmovrsintrin.h +48 -0
  53. package/include/amxtf32intrin.h +108 -0
  54. package/include/andes_vector.h +16 -0
  55. package/include/arm64intr.h +35 -0
  56. package/include/arm_acle.h +865 -0
  57. package/include/arm_bf16.h +20 -0
  58. package/include/arm_cde.h +410 -0
  59. package/include/arm_cmse.h +217 -0
  60. package/include/arm_fp16.h +596 -0
  61. package/include/arm_mve.h +19187 -0
  62. package/include/arm_neon.h +74183 -0
  63. package/include/arm_neon_sve_bridge.h +182 -0
  64. package/include/arm_sme.h +3741 -0
  65. package/include/arm_sve.h +32278 -0
  66. package/include/arm_vector_types.h +432 -0
  67. package/include/armintr.h +31 -0
  68. package/include/avx10_2_512bf16intrin.h +568 -0
  69. package/include/avx10_2_512convertintrin.h +322 -0
  70. package/include/avx10_2_512minmaxintrin.h +127 -0
  71. package/include/avx10_2_512niintrin.h +314 -0
  72. package/include/avx10_2_512satcvtdsintrin.h +307 -0
  73. package/include/avx10_2_512satcvtintrin.h +301 -0
  74. package/include/avx10_2bf16intrin.h +1094 -0
  75. package/include/avx10_2convertintrin.h +3257 -0
  76. package/include/avx10_2copyintrin.h +66 -0
  77. package/include/avx10_2minmaxintrin.h +232 -0
  78. package/include/avx10_2niintrin.h +409 -0
  79. package/include/avx10_2satcvtdsintrin.h +376 -0
  80. package/include/avx10_2satcvtintrin.h +312 -0
  81. package/include/avx2intrin.h +5191 -0
  82. package/include/avx512bf16intrin.h +292 -0
  83. package/include/avx512bitalgintrin.h +75 -0
  84. package/include/avx512bwintrin.h +1895 -0
  85. package/include/avx512cdintrin.h +112 -0
  86. package/include/avx512dqintrin.h +1350 -0
  87. package/include/avx512fintrin.h +9378 -0
  88. package/include/avx512fp16intrin.h +3355 -0
  89. package/include/avx512ifmaintrin.h +68 -0
  90. package/include/avx512ifmavlintrin.h +138 -0
  91. package/include/avx512vbmi2intrin.h +368 -0
  92. package/include/avx512vbmiintrin.h +98 -0
  93. package/include/avx512vbmivlintrin.h +179 -0
  94. package/include/avx512vlbf16intrin.h +527 -0
  95. package/include/avx512vlbitalgintrin.h +135 -0
  96. package/include/avx512vlbwintrin.h +3064 -0
  97. package/include/avx512vlcdintrin.h +202 -0
  98. package/include/avx512vldqintrin.h +1156 -0
  99. package/include/avx512vlfp16intrin.h +2090 -0
  100. package/include/avx512vlintrin.h +8083 -0
  101. package/include/avx512vlvbmi2intrin.h +710 -0
  102. package/include/avx512vlvnniintrin.h +313 -0
  103. package/include/avx512vlvp2intersectintrin.h +123 -0
  104. package/include/avx512vnniintrin.h +116 -0
  105. package/include/avx512vp2intersectintrin.h +77 -0
  106. package/include/avx512vpopcntdqintrin.h +62 -0
  107. package/include/avx512vpopcntdqvlintrin.h +105 -0
  108. package/include/avxifmaintrin.h +193 -0
  109. package/include/avxintrin.h +5064 -0
  110. package/include/avxneconvertintrin.h +484 -0
  111. package/include/avxvnniint16intrin.h +451 -0
  112. package/include/avxvnniint8intrin.h +454 -0
  113. package/include/avxvnniintrin.h +233 -0
  114. package/include/bmi2intrin.h +253 -0
  115. package/include/bmiintrin.h +604 -0
  116. package/include/builtins.h +19 -0
  117. package/include/cet.h +66 -0
  118. package/include/cetintrin.h +115 -0
  119. package/include/cldemoteintrin.h +36 -0
  120. package/include/clflushoptintrin.h +36 -0
  121. package/include/clwbintrin.h +38 -0
  122. package/include/clzerointrin.h +38 -0
  123. package/include/cmpccxaddintrin.h +70 -0
  124. package/include/cpuid.h +451 -0
  125. package/include/crc32intrin.h +100 -0
  126. package/include/cuda_wrappers/__utility/declval.h +28 -0
  127. package/include/cuda_wrappers/algorithm +116 -0
  128. package/include/cuda_wrappers/bits/basic_string.h +9 -0
  129. package/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  130. package/include/cuda_wrappers/bits/c++config.h +61 -0
  131. package/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  132. package/include/cuda_wrappers/cmath +44 -0
  133. package/include/cuda_wrappers/complex +90 -0
  134. package/include/cuda_wrappers/new +108 -0
  135. package/include/emmintrin.h +4940 -0
  136. package/include/enqcmdintrin.h +63 -0
  137. package/include/f16cintrin.h +176 -0
  138. package/include/float.h +48 -0
  139. package/include/fma4intrin.h +220 -0
  140. package/include/fmaintrin.h +826 -0
  141. package/include/fuzzer/FuzzedDataProvider.h +397 -0
  142. package/include/fxsrintrin.h +91 -0
  143. package/include/gfniintrin.h +238 -0
  144. package/include/gpuintrin.h +330 -0
  145. package/include/hexagon_circ_brev_intrinsics.h +298 -0
  146. package/include/hexagon_protos.h +8439 -0
  147. package/include/hexagon_types.h +2628 -0
  148. package/include/hresetintrin.h +49 -0
  149. package/include/htmintrin.h +212 -0
  150. package/include/htmxlintrin.h +345 -0
  151. package/include/hvx_hexagon_protos.h +5399 -0
  152. package/include/ia32intrin.h +863 -0
  153. package/include/immintrin.h +595 -0
  154. package/include/intrin.h +491 -0
  155. package/include/intrin0.h +256 -0
  156. package/include/inttypes.h +101 -0
  157. package/include/invpcidintrin.h +23 -0
  158. package/include/iso646.h +31 -0
  159. package/include/keylockerintrin.h +518 -0
  160. package/include/larchintrin.h +260 -0
  161. package/include/lasxintrin.h +3999 -0
  162. package/include/limits.h +133 -0
  163. package/include/llvm_libc_wrappers/assert.h +32 -0
  164. package/include/llvm_libc_wrappers/ctype.h +28 -0
  165. package/include/llvm_libc_wrappers/inttypes.h +32 -0
  166. package/include/llvm_libc_wrappers/stdio.h +52 -0
  167. package/include/llvm_libc_wrappers/stdlib.h +32 -0
  168. package/include/llvm_libc_wrappers/string.h +28 -0
  169. package/include/llvm_libc_wrappers/time.h +28 -0
  170. package/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  171. package/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  172. package/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  173. package/include/lsxintrin.h +3752 -0
  174. package/include/lwpintrin.h +136 -0
  175. package/include/lzcntintrin.h +109 -0
  176. package/include/mm3dnow.h +22 -0
  177. package/include/mm_malloc.h +67 -0
  178. package/include/mmintrin.h +1541 -0
  179. package/include/module.modulemap +360 -0
  180. package/include/movdirintrin.h +49 -0
  181. package/include/movrs_avx10_2_512intrin.h +98 -0
  182. package/include/movrs_avx10_2intrin.h +174 -0
  183. package/include/movrsintrin.h +59 -0
  184. package/include/msa.h +573 -0
  185. package/include/mwaitxintrin.h +62 -0
  186. package/include/nmmintrin.h +20 -0
  187. package/include/nvptxintrin.h +219 -0
  188. package/include/opencl-c-base.h +758 -0
  189. package/include/opencl-c.h +18676 -0
  190. package/include/openmp_wrappers/__clang_openmp_device_functions.h +104 -0
  191. package/include/openmp_wrappers/cmath +132 -0
  192. package/include/openmp_wrappers/complex +55 -0
  193. package/include/openmp_wrappers/complex.h +35 -0
  194. package/include/openmp_wrappers/complex_cmath.h +393 -0
  195. package/include/openmp_wrappers/math.h +61 -0
  196. package/include/openmp_wrappers/new +48 -0
  197. package/include/pconfigintrin.h +40 -0
  198. package/include/pkuintrin.h +34 -0
  199. package/include/pmmintrin.h +302 -0
  200. package/include/popcntintrin.h +59 -0
  201. package/include/ppc_wrappers/bmi2intrin.h +134 -0
  202. package/include/ppc_wrappers/bmiintrin.h +165 -0
  203. package/include/ppc_wrappers/emmintrin.h +2269 -0
  204. package/include/ppc_wrappers/immintrin.h +27 -0
  205. package/include/ppc_wrappers/mm_malloc.h +45 -0
  206. package/include/ppc_wrappers/mmintrin.h +1453 -0
  207. package/include/ppc_wrappers/nmmintrin.h +26 -0
  208. package/include/ppc_wrappers/pmmintrin.h +145 -0
  209. package/include/ppc_wrappers/smmintrin.h +683 -0
  210. package/include/ppc_wrappers/tmmintrin.h +453 -0
  211. package/include/ppc_wrappers/x86gprintrin.h +17 -0
  212. package/include/ppc_wrappers/x86intrin.h +28 -0
  213. package/include/ppc_wrappers/xmmintrin.h +1827 -0
  214. package/include/prfchiintrin.h +61 -0
  215. package/include/prfchwintrin.h +57 -0
  216. package/include/profile/InstrProfData.inc +1001 -0
  217. package/include/profile/instr_prof_interface.h +88 -0
  218. package/include/ptrauth.h +407 -0
  219. package/include/ptwriteintrin.h +37 -0
  220. package/include/raointintrin.h +203 -0
  221. package/include/rdpruintrin.h +57 -0
  222. package/include/rdseedintrin.h +105 -0
  223. package/include/riscv_bitmanip.h +195 -0
  224. package/include/riscv_corev_alu.h +128 -0
  225. package/include/riscv_crypto.h +170 -0
  226. package/include/riscv_mips.h +34 -0
  227. package/include/riscv_nds.h +89 -0
  228. package/include/riscv_ntlh.h +26 -0
  229. package/include/riscv_vector.h +422 -0
  230. package/include/rtmintrin.h +45 -0
  231. package/include/s390intrin.h +25 -0
  232. package/include/sanitizer/allocator_interface.h +106 -0
  233. package/include/sanitizer/asan_interface.h +348 -0
  234. package/include/sanitizer/common_interface_defs.h +544 -0
  235. package/include/sanitizer/coverage_interface.h +36 -0
  236. package/include/sanitizer/dfsan_interface.h +220 -0
  237. package/include/sanitizer/hwasan_interface.h +109 -0
  238. package/include/sanitizer/linux_syscall_hooks.h +3112 -0
  239. package/include/sanitizer/lsan_interface.h +89 -0
  240. package/include/sanitizer/msan_interface.h +135 -0
  241. package/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  242. package/include/sanitizer/rtsan_interface.h +75 -0
  243. package/include/sanitizer/scudo_interface.h +38 -0
  244. package/include/sanitizer/tsan_interface.h +316 -0
  245. package/include/sanitizer/tsan_interface_atomic.h +223 -0
  246. package/include/sanitizer/ubsan_interface.h +34 -0
  247. package/include/serializeintrin.h +30 -0
  248. package/include/sgxintrin.h +60 -0
  249. package/include/sha512intrin.h +200 -0
  250. package/include/shaintrin.h +190 -0
  251. package/include/sifive_vector.h +174 -0
  252. package/include/sm3intrin.h +238 -0
  253. package/include/sm4evexintrin.h +32 -0
  254. package/include/sm4intrin.h +269 -0
  255. package/include/smmintrin.h +2352 -0
  256. package/include/spirvintrin.h +194 -0
  257. package/include/stdalign.h +24 -0
  258. package/include/stdarg.h +75 -0
  259. package/include/stdatomic.h +204 -0
  260. package/include/stdbool.h +39 -0
  261. package/include/stdckdint.h +42 -0
  262. package/include/stdcountof.h +15 -0
  263. package/include/stddef.h +139 -0
  264. package/include/stddefer.h +19 -0
  265. package/include/stdint.h +844 -0
  266. package/include/stdnoreturn.h +35 -0
  267. package/include/tbmintrin.h +128 -0
  268. package/include/tgmath.h +1368 -0
  269. package/include/tmmintrin.h +779 -0
  270. package/include/tsxldtrkintrin.h +56 -0
  271. package/include/uintrintrin.h +157 -0
  272. package/include/unwind.h +332 -0
  273. package/include/usermsrintrin.h +51 -0
  274. package/include/vadefs.h +51 -0
  275. package/include/vaesintrin.h +86 -0
  276. package/include/varargs.h +16 -0
  277. package/include/vecintrin.h +12868 -0
  278. package/include/velintrin.h +71 -0
  279. package/include/velintrin_approx.h +120 -0
  280. package/include/velintrin_gen.h +1257 -0
  281. package/include/vpclmulqdqintrin.h +30 -0
  282. package/include/waitpkgintrin.h +42 -0
  283. package/include/wasm_simd128.h +2143 -0
  284. package/include/wbnoinvdintrin.h +24 -0
  285. package/include/wmmintrin.h +23 -0
  286. package/include/x86gprintrin.h +49 -0
  287. package/include/x86intrin.h +35 -0
  288. package/include/xmmintrin.h +3175 -0
  289. package/include/xopintrin.h +780 -0
  290. package/include/xsavecintrin.h +84 -0
  291. package/include/xsaveintrin.h +63 -0
  292. package/include/xsaveoptintrin.h +34 -0
  293. package/include/xsavesintrin.h +44 -0
  294. package/include/xtestintrin.h +27 -0
  295. package/include/yvals_core.h +25 -0
  296. package/include/zos_wrappers/builtins.h +18 -0
  297. package/index.js +5 -0
  298. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  299. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  300. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  301. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  302. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  303. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  304. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  305. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  306. package/lib/darwin/libclang_rt.fuzzer_interceptors_ios.a +0 -0
  307. package/lib/darwin/libclang_rt.fuzzer_interceptors_iossim.a +0 -0
  308. package/lib/darwin/libclang_rt.fuzzer_interceptors_osx.a +0 -0
  309. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  310. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  311. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  312. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  313. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  314. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  315. package/lib/darwin/libclang_rt.ios.a +0 -0
  316. package/lib/darwin/libclang_rt.iossim.a +0 -0
  317. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  318. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  319. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  320. package/lib/darwin/libclang_rt.osx.a +0 -0
  321. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  322. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  323. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  324. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  325. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  326. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  327. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  328. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  329. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  330. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  331. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  332. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  333. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  334. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  335. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  336. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  337. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  338. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  339. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  340. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  341. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  342. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  343. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  344. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  345. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  346. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  347. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  348. package/package.json +40 -1
  349. package/share/asan_ignorelist.txt +14 -0
  350. package/share/cfi_ignorelist.txt +17 -0
@@ -0,0 +1,229 @@
1
+ /*===-- __clang_cuda_complex_builtins - CUDA impls of runtime complex fns ---===
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
+
10
+ #ifndef __CLANG_CUDA_COMPLEX_BUILTINS
11
+ #define __CLANG_CUDA_COMPLEX_BUILTINS
12
+
13
+ // This header defines __muldc3, __mulsc3, __divdc3, and __divsc3. These are
14
+ // libgcc functions that clang assumes are available when compiling c99 complex
15
+ // operations. (These implementations come from libc++, and have been modified
16
+ // to work with CUDA and OpenMP target offloading [in C and C++ mode].)
17
+
18
+ #pragma push_macro("__DEVICE__")
19
+ #if defined(__OPENMP_NVPTX__) || defined(__OPENMP_AMDGCN__)
20
+ #pragma omp declare target
21
+ #define __DEVICE__ __attribute__((noinline, nothrow, cold, weak))
22
+ #else
23
+ #define __DEVICE__ __device__ inline
24
+ #endif
25
+
26
+ #ifdef __NVPTX__
27
+ // FIXME: NVPTX should use generic builtins.
28
+ #define _SCALBNd __nv_scalbn
29
+ #define _SCALBNf __nv_scalbnf
30
+ #define _LOGBd __nv_logb
31
+ #define _LOGBf __nv_logbf
32
+ #else
33
+ #define _SCALBNd __builtin_scalbn
34
+ #define _SCALBNf __builtin_scalbnf
35
+ #define _LOGBd __builtin_logb
36
+ #define _LOGBf __builtin_logbf
37
+ #endif
38
+
39
+ #if defined(__cplusplus)
40
+ extern "C" {
41
+ #endif
42
+
43
+ __DEVICE__ double _Complex __muldc3(double __a, double __b, double __c,
44
+ double __d) {
45
+ double __ac = __a * __c;
46
+ double __bd = __b * __d;
47
+ double __ad = __a * __d;
48
+ double __bc = __b * __c;
49
+ double _Complex z;
50
+ __real__(z) = __ac - __bd;
51
+ __imag__(z) = __ad + __bc;
52
+ if (__builtin_isnan(__real__(z)) && __builtin_isnan(__imag__(z))) {
53
+ int __recalc = 0;
54
+ if (__builtin_isinf(__a) || __builtin_isinf(__b)) {
55
+ __a = __builtin_copysign(__builtin_isinf(__a) ? 1 : 0, __a);
56
+ __b = __builtin_copysign(__builtin_isinf(__b) ? 1 : 0, __b);
57
+ if (__builtin_isnan(__c))
58
+ __c = __builtin_copysign(0, __c);
59
+ if (__builtin_isnan(__d))
60
+ __d = __builtin_copysign(0, __d);
61
+ __recalc = 1;
62
+ }
63
+ if (__builtin_isinf(__c) || __builtin_isinf(__d)) {
64
+ __c = __builtin_copysign(__builtin_isinf(__c) ? 1 : 0, __c);
65
+ __d = __builtin_copysign(__builtin_isinf(__d) ? 1 : 0, __d);
66
+ if (__builtin_isnan(__a))
67
+ __a = __builtin_copysign(0, __a);
68
+ if (__builtin_isnan(__b))
69
+ __b = __builtin_copysign(0, __b);
70
+ __recalc = 1;
71
+ }
72
+ if (!__recalc && (__builtin_isinf(__ac) || __builtin_isinf(__bd) ||
73
+ __builtin_isinf(__ad) || __builtin_isinf(__bc))) {
74
+ if (__builtin_isnan(__a))
75
+ __a = __builtin_copysign(0, __a);
76
+ if (__builtin_isnan(__b))
77
+ __b = __builtin_copysign(0, __b);
78
+ if (__builtin_isnan(__c))
79
+ __c = __builtin_copysign(0, __c);
80
+ if (__builtin_isnan(__d))
81
+ __d = __builtin_copysign(0, __d);
82
+ __recalc = 1;
83
+ }
84
+ if (__recalc) {
85
+ // Can't use std::numeric_limits<double>::infinity() -- that doesn't have
86
+ // a device overload (and isn't constexpr before C++11, naturally).
87
+ __real__(z) = __builtin_huge_val() * (__a * __c - __b * __d);
88
+ __imag__(z) = __builtin_huge_val() * (__a * __d + __b * __c);
89
+ }
90
+ }
91
+ return z;
92
+ }
93
+
94
+ __DEVICE__ float _Complex __mulsc3(float __a, float __b, float __c, float __d) {
95
+ float __ac = __a * __c;
96
+ float __bd = __b * __d;
97
+ float __ad = __a * __d;
98
+ float __bc = __b * __c;
99
+ float _Complex z;
100
+ __real__(z) = __ac - __bd;
101
+ __imag__(z) = __ad + __bc;
102
+ if (__builtin_isnan(__real__(z)) && __builtin_isnan(__imag__(z))) {
103
+ int __recalc = 0;
104
+ if (__builtin_isinf(__a) || __builtin_isinf(__b)) {
105
+ __a = __builtin_copysignf(__builtin_isinf(__a) ? 1 : 0, __a);
106
+ __b = __builtin_copysignf(__builtin_isinf(__b) ? 1 : 0, __b);
107
+ if (__builtin_isnan(__c))
108
+ __c = __builtin_copysignf(0, __c);
109
+ if (__builtin_isnan(__d))
110
+ __d = __builtin_copysignf(0, __d);
111
+ __recalc = 1;
112
+ }
113
+ if (__builtin_isinf(__c) || __builtin_isinf(__d)) {
114
+ __c = __builtin_copysignf(__builtin_isinf(__c) ? 1 : 0, __c);
115
+ __d = __builtin_copysignf(__builtin_isinf(__d) ? 1 : 0, __d);
116
+ if (__builtin_isnan(__a))
117
+ __a = __builtin_copysignf(0, __a);
118
+ if (__builtin_isnan(__b))
119
+ __b = __builtin_copysignf(0, __b);
120
+ __recalc = 1;
121
+ }
122
+ if (!__recalc && (__builtin_isinf(__ac) || __builtin_isinf(__bd) ||
123
+ __builtin_isinf(__ad) || __builtin_isinf(__bc))) {
124
+ if (__builtin_isnan(__a))
125
+ __a = __builtin_copysignf(0, __a);
126
+ if (__builtin_isnan(__b))
127
+ __b = __builtin_copysignf(0, __b);
128
+ if (__builtin_isnan(__c))
129
+ __c = __builtin_copysignf(0, __c);
130
+ if (__builtin_isnan(__d))
131
+ __d = __builtin_copysignf(0, __d);
132
+ __recalc = 1;
133
+ }
134
+ if (__recalc) {
135
+ __real__(z) = __builtin_huge_valf() * (__a * __c - __b * __d);
136
+ __imag__(z) = __builtin_huge_valf() * (__a * __d + __b * __c);
137
+ }
138
+ }
139
+ return z;
140
+ }
141
+
142
+ __DEVICE__ double _Complex __divdc3(double __a, double __b, double __c,
143
+ double __d) {
144
+ int __ilogbw = 0;
145
+ // Can't use std::max, because that's defined in <algorithm>, and we don't
146
+ // want to pull that in for every compile. The CUDA headers define
147
+ // ::max(float, float) and ::max(double, double), which is sufficient for us.
148
+ double __logbw =
149
+ _LOGBd(__builtin_fmax(__builtin_fabs(__c), __builtin_fabs(__d)));
150
+ if (__builtin_isfinite(__logbw)) {
151
+ __ilogbw = (int)__logbw;
152
+ __c = _SCALBNd(__c, -__ilogbw);
153
+ __d = _SCALBNd(__d, -__ilogbw);
154
+ }
155
+ double __denom = __c * __c + __d * __d;
156
+ double _Complex z;
157
+ __real__(z) = _SCALBNd((__a * __c + __b * __d) / __denom, -__ilogbw);
158
+ __imag__(z) = _SCALBNd((__b * __c - __a * __d) / __denom, -__ilogbw);
159
+ if (__builtin_isnan(__real__(z)) && __builtin_isnan(__imag__(z))) {
160
+ if ((__denom == 0.0) && (!__builtin_isnan(__a) || !__builtin_isnan(__b))) {
161
+ __real__(z) = __builtin_copysign(__builtin_huge_val(), __c) * __a;
162
+ __imag__(z) = __builtin_copysign(__builtin_huge_val(), __c) * __b;
163
+ } else if ((__builtin_isinf(__a) || __builtin_isinf(__b)) &&
164
+ __builtin_isfinite(__c) && __builtin_isfinite(__d)) {
165
+ __a = __builtin_copysign(__builtin_isinf(__a) ? 1.0 : 0.0, __a);
166
+ __b = __builtin_copysign(__builtin_isinf(__b) ? 1.0 : 0.0, __b);
167
+ __real__(z) = __builtin_huge_val() * (__a * __c + __b * __d);
168
+ __imag__(z) = __builtin_huge_val() * (__b * __c - __a * __d);
169
+ } else if (__builtin_isinf(__logbw) && __logbw > 0.0 &&
170
+ __builtin_isfinite(__a) && __builtin_isfinite(__b)) {
171
+ __c = __builtin_copysign(__builtin_isinf(__c) ? 1.0 : 0.0, __c);
172
+ __d = __builtin_copysign(__builtin_isinf(__d) ? 1.0 : 0.0, __d);
173
+ __real__(z) = 0.0 * (__a * __c + __b * __d);
174
+ __imag__(z) = 0.0 * (__b * __c - __a * __d);
175
+ }
176
+ }
177
+ return z;
178
+ }
179
+
180
+ __DEVICE__ float _Complex __divsc3(float __a, float __b, float __c, float __d) {
181
+ int __ilogbw = 0;
182
+ float __logbw =
183
+ _LOGBf(__builtin_fmaxf(__builtin_fabsf(__c), __builtin_fabsf(__d)));
184
+ if (__builtin_isfinite(__logbw)) {
185
+ __ilogbw = (int)__logbw;
186
+ __c = _SCALBNf(__c, -__ilogbw);
187
+ __d = _SCALBNf(__d, -__ilogbw);
188
+ }
189
+ float __denom = __c * __c + __d * __d;
190
+ float _Complex z;
191
+ __real__(z) = _SCALBNf((__a * __c + __b * __d) / __denom, -__ilogbw);
192
+ __imag__(z) = _SCALBNf((__b * __c - __a * __d) / __denom, -__ilogbw);
193
+ if (__builtin_isnan(__real__(z)) && __builtin_isnan(__imag__(z))) {
194
+ if ((__denom == 0) && (!__builtin_isnan(__a) || !__builtin_isnan(__b))) {
195
+ __real__(z) = __builtin_copysignf(__builtin_huge_valf(), __c) * __a;
196
+ __imag__(z) = __builtin_copysignf(__builtin_huge_valf(), __c) * __b;
197
+ } else if ((__builtin_isinf(__a) || __builtin_isinf(__b)) &&
198
+ __builtin_isfinite(__c) && __builtin_isfinite(__d)) {
199
+ __a = __builtin_copysignf(__builtin_isinf(__a) ? 1 : 0, __a);
200
+ __b = __builtin_copysignf(__builtin_isinf(__b) ? 1 : 0, __b);
201
+ __real__(z) = __builtin_huge_valf() * (__a * __c + __b * __d);
202
+ __imag__(z) = __builtin_huge_valf() * (__b * __c - __a * __d);
203
+ } else if (__builtin_isinf(__logbw) && __logbw > 0 &&
204
+ __builtin_isfinite(__a) && __builtin_isfinite(__b)) {
205
+ __c = __builtin_copysignf(__builtin_isinf(__c) ? 1 : 0, __c);
206
+ __d = __builtin_copysignf(__builtin_isinf(__d) ? 1 : 0, __d);
207
+ __real__(z) = 0 * (__a * __c + __b * __d);
208
+ __imag__(z) = 0 * (__b * __c - __a * __d);
209
+ }
210
+ }
211
+ return z;
212
+ }
213
+
214
+ #if defined(__cplusplus)
215
+ } // extern "C"
216
+ #endif
217
+
218
+ #undef _SCALBNd
219
+ #undef _SCALBNf
220
+ #undef _LOGBd
221
+ #undef _LOGBf
222
+
223
+ #if defined(__OPENMP_NVPTX__) || defined(__OPENMP_AMDGCN__)
224
+ #pragma omp end declare target
225
+ #endif
226
+
227
+ #pragma pop_macro("__DEVICE__")
228
+
229
+ #endif // __CLANG_CUDA_COMPLEX_BUILTINS