@cpp-linter/clang-tidy-win32-x64 16.0.3 → 17.0.6

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 (222) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{16 → 17}/include/__clang_cuda_intrinsics.h +191 -0
  4. package/lib/clang/{16 → 17}/include/__clang_cuda_math.h +1 -1
  5. package/lib/clang/{16 → 17}/include/__clang_hip_cmath.h +1 -1
  6. package/lib/clang/{16 → 17}/include/__clang_hip_libdevice_declares.h +32 -30
  7. package/lib/clang/{16 → 17}/include/__clang_hip_math.h +56 -71
  8. package/lib/clang/{16 → 17}/include/__clang_hip_runtime_wrapper.h +13 -0
  9. package/lib/clang/17/include/adxintrin.h +227 -0
  10. package/lib/clang/{16 → 17}/include/altivec.h +136 -124
  11. package/lib/clang/17/include/amxcomplexintrin.h +169 -0
  12. package/lib/clang/{16 → 17}/include/arm_acle.h +13 -9
  13. package/lib/clang/{16 → 17}/include/arm_neon.h +164 -1
  14. package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +642 -0
  15. package/lib/clang/{16 → 17}/include/arm_sve.h +68 -13
  16. package/lib/clang/17/include/avx2intrin.h +5263 -0
  17. package/lib/clang/{16 → 17}/include/avx512fintrin.h +17 -7
  18. package/lib/clang/{16 → 17}/include/avx512fp16intrin.h +12 -8
  19. package/lib/clang/{16 → 17}/include/avxintrin.h +20 -7
  20. package/lib/clang/17/include/avxvnniint16intrin.h +473 -0
  21. package/lib/clang/17/include/bmi2intrin.h +255 -0
  22. package/lib/clang/{16 → 17}/include/clflushoptintrin.h +9 -0
  23. package/lib/clang/{16 → 17}/include/clzerointrin.h +7 -5
  24. package/lib/clang/17/include/cuda_wrappers/bits/basic_string.h +9 -0
  25. package/lib/clang/17/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  26. package/lib/clang/17/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  27. package/lib/clang/17/include/fmaintrin.h +780 -0
  28. package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +480 -0
  29. package/lib/clang/{16 → 17}/include/immintrin.h +116 -8
  30. package/lib/clang/{16 → 17}/include/limits.h +5 -1
  31. package/lib/clang/17/include/llvm_libc_wrappers/ctype.h +85 -0
  32. package/lib/clang/17/include/llvm_libc_wrappers/inttypes.h +34 -0
  33. package/lib/clang/17/include/llvm_libc_wrappers/stdio.h +34 -0
  34. package/lib/clang/17/include/llvm_libc_wrappers/stdlib.h +42 -0
  35. package/lib/clang/17/include/llvm_libc_wrappers/string.h +37 -0
  36. package/lib/clang/17/include/mwaitxintrin.h +62 -0
  37. package/lib/clang/{16 → 17}/include/opencl-c-base.h +3 -0
  38. package/lib/clang/{16 → 17}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
  39. package/lib/clang/{16 → 17}/include/openmp_wrappers/new +1 -1
  40. package/lib/clang/{16 → 17}/include/pmmintrin.h +12 -6
  41. package/lib/clang/{16 → 17}/include/ppc_wrappers/emmintrin.h +2 -1
  42. package/lib/clang/{16 → 17}/include/ppc_wrappers/smmintrin.h +2 -2
  43. package/lib/clang/17/include/rdseedintrin.h +105 -0
  44. package/lib/clang/17/include/riscv_ntlh.h +28 -0
  45. package/lib/clang/17/include/riscv_vector.h +400 -0
  46. package/lib/clang/17/include/sha512intrin.h +200 -0
  47. package/lib/clang/17/include/shaintrin.h +189 -0
  48. package/lib/clang/17/include/sifive_vector.h +16 -0
  49. package/lib/clang/17/include/sm3intrin.h +238 -0
  50. package/lib/clang/17/include/sm4intrin.h +269 -0
  51. package/lib/clang/{16 → 17}/include/stdalign.h +5 -0
  52. package/lib/clang/{16 → 17}/include/stdatomic.h +9 -2
  53. package/lib/clang/{16 → 17}/include/stddef.h +5 -0
  54. package/lib/clang/{16 → 17}/include/wasm_simd128.h +132 -12
  55. package/lib/clang/17/include/xsavecintrin.h +84 -0
  56. package/package.json +6 -6
  57. package/lib/clang/16/include/adxintrin.h +0 -72
  58. package/lib/clang/16/include/avx2intrin.h +0 -1148
  59. package/lib/clang/16/include/bmi2intrin.h +0 -81
  60. package/lib/clang/16/include/fmaintrin.h +0 -216
  61. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +0 -223
  62. package/lib/clang/16/include/mwaitxintrin.h +0 -33
  63. package/lib/clang/16/include/rdseedintrin.h +0 -42
  64. package/lib/clang/16/include/riscv_vector.h +0 -211
  65. package/lib/clang/16/include/shaintrin.h +0 -61
  66. package/lib/clang/16/include/xsavecintrin.h +0 -34
  67. /package/lib/clang/{16 → 17}/include/__clang_cuda_builtin_vars.h +0 -0
  68. /package/lib/clang/{16 → 17}/include/__clang_cuda_cmath.h +0 -0
  69. /package/lib/clang/{16 → 17}/include/__clang_cuda_complex_builtins.h +0 -0
  70. /package/lib/clang/{16 → 17}/include/__clang_cuda_device_functions.h +0 -0
  71. /package/lib/clang/{16 → 17}/include/__clang_cuda_libdevice_declares.h +0 -0
  72. /package/lib/clang/{16 → 17}/include/__clang_cuda_math_forward_declares.h +0 -0
  73. /package/lib/clang/{16 → 17}/include/__clang_cuda_runtime_wrapper.h +0 -0
  74. /package/lib/clang/{16 → 17}/include/__clang_cuda_texture_intrinsics.h +0 -0
  75. /package/lib/clang/{16 → 17}/include/__clang_hip_stdlib.h +0 -0
  76. /package/lib/clang/{16 → 17}/include/__stddef_max_align_t.h +0 -0
  77. /package/lib/clang/{16 → 17}/include/__wmmintrin_aes.h +0 -0
  78. /package/lib/clang/{16 → 17}/include/__wmmintrin_pclmul.h +0 -0
  79. /package/lib/clang/{16 → 17}/include/ammintrin.h +0 -0
  80. /package/lib/clang/{16 → 17}/include/amxfp16intrin.h +0 -0
  81. /package/lib/clang/{16 → 17}/include/amxintrin.h +0 -0
  82. /package/lib/clang/{16 → 17}/include/arm64intr.h +0 -0
  83. /package/lib/clang/{16 → 17}/include/arm_bf16.h +0 -0
  84. /package/lib/clang/{16 → 17}/include/arm_cde.h +0 -0
  85. /package/lib/clang/{16 → 17}/include/arm_cmse.h +0 -0
  86. /package/lib/clang/{16 → 17}/include/arm_fp16.h +0 -0
  87. /package/lib/clang/{16 → 17}/include/arm_mve.h +0 -0
  88. /package/lib/clang/{16 → 17}/include/arm_neon_sve_bridge.h +0 -0
  89. /package/lib/clang/{16 → 17}/include/armintr.h +0 -0
  90. /package/lib/clang/{16 → 17}/include/avx512bf16intrin.h +0 -0
  91. /package/lib/clang/{16 → 17}/include/avx512bitalgintrin.h +0 -0
  92. /package/lib/clang/{16 → 17}/include/avx512bwintrin.h +0 -0
  93. /package/lib/clang/{16 → 17}/include/avx512cdintrin.h +0 -0
  94. /package/lib/clang/{16 → 17}/include/avx512dqintrin.h +0 -0
  95. /package/lib/clang/{16 → 17}/include/avx512erintrin.h +0 -0
  96. /package/lib/clang/{16 → 17}/include/avx512ifmaintrin.h +0 -0
  97. /package/lib/clang/{16 → 17}/include/avx512ifmavlintrin.h +0 -0
  98. /package/lib/clang/{16 → 17}/include/avx512pfintrin.h +0 -0
  99. /package/lib/clang/{16 → 17}/include/avx512vbmi2intrin.h +0 -0
  100. /package/lib/clang/{16 → 17}/include/avx512vbmiintrin.h +0 -0
  101. /package/lib/clang/{16 → 17}/include/avx512vbmivlintrin.h +0 -0
  102. /package/lib/clang/{16 → 17}/include/avx512vlbf16intrin.h +0 -0
  103. /package/lib/clang/{16 → 17}/include/avx512vlbitalgintrin.h +0 -0
  104. /package/lib/clang/{16 → 17}/include/avx512vlbwintrin.h +0 -0
  105. /package/lib/clang/{16 → 17}/include/avx512vlcdintrin.h +0 -0
  106. /package/lib/clang/{16 → 17}/include/avx512vldqintrin.h +0 -0
  107. /package/lib/clang/{16 → 17}/include/avx512vlfp16intrin.h +0 -0
  108. /package/lib/clang/{16 → 17}/include/avx512vlintrin.h +0 -0
  109. /package/lib/clang/{16 → 17}/include/avx512vlvbmi2intrin.h +0 -0
  110. /package/lib/clang/{16 → 17}/include/avx512vlvnniintrin.h +0 -0
  111. /package/lib/clang/{16 → 17}/include/avx512vlvp2intersectintrin.h +0 -0
  112. /package/lib/clang/{16 → 17}/include/avx512vnniintrin.h +0 -0
  113. /package/lib/clang/{16 → 17}/include/avx512vp2intersectintrin.h +0 -0
  114. /package/lib/clang/{16 → 17}/include/avx512vpopcntdqintrin.h +0 -0
  115. /package/lib/clang/{16 → 17}/include/avx512vpopcntdqvlintrin.h +0 -0
  116. /package/lib/clang/{16 → 17}/include/avxifmaintrin.h +0 -0
  117. /package/lib/clang/{16 → 17}/include/avxneconvertintrin.h +0 -0
  118. /package/lib/clang/{16 → 17}/include/avxvnniint8intrin.h +0 -0
  119. /package/lib/clang/{16 → 17}/include/avxvnniintrin.h +0 -0
  120. /package/lib/clang/{16 → 17}/include/bmiintrin.h +0 -0
  121. /package/lib/clang/{16 → 17}/include/builtins.h +0 -0
  122. /package/lib/clang/{16 → 17}/include/cet.h +0 -0
  123. /package/lib/clang/{16 → 17}/include/cetintrin.h +0 -0
  124. /package/lib/clang/{16 → 17}/include/cldemoteintrin.h +0 -0
  125. /package/lib/clang/{16 → 17}/include/clwbintrin.h +0 -0
  126. /package/lib/clang/{16 → 17}/include/cmpccxaddintrin.h +0 -0
  127. /package/lib/clang/{16 → 17}/include/cpuid.h +0 -0
  128. /package/lib/clang/{16 → 17}/include/crc32intrin.h +0 -0
  129. /package/lib/clang/{16 → 17}/include/cuda_wrappers/algorithm +0 -0
  130. /package/lib/clang/{16 → 17}/include/cuda_wrappers/cmath +0 -0
  131. /package/lib/clang/{16 → 17}/include/cuda_wrappers/complex +0 -0
  132. /package/lib/clang/{16 → 17}/include/cuda_wrappers/new +0 -0
  133. /package/lib/clang/{16 → 17}/include/emmintrin.h +0 -0
  134. /package/lib/clang/{16 → 17}/include/enqcmdintrin.h +0 -0
  135. /package/lib/clang/{16 → 17}/include/f16cintrin.h +0 -0
  136. /package/lib/clang/{16 → 17}/include/float.h +0 -0
  137. /package/lib/clang/{16 → 17}/include/fma4intrin.h +0 -0
  138. /package/lib/clang/{16 → 17}/include/fxsrintrin.h +0 -0
  139. /package/lib/clang/{16 → 17}/include/gfniintrin.h +0 -0
  140. /package/lib/clang/{16 → 17}/include/hexagon_circ_brev_intrinsics.h +0 -0
  141. /package/lib/clang/{16 → 17}/include/hexagon_protos.h +0 -0
  142. /package/lib/clang/{16 → 17}/include/hexagon_types.h +0 -0
  143. /package/lib/clang/{16 → 17}/include/hlsl/hlsl_basic_types.h +0 -0
  144. /package/lib/clang/{16 → 17}/include/hlsl.h +0 -0
  145. /package/lib/clang/{16 → 17}/include/hresetintrin.h +0 -0
  146. /package/lib/clang/{16 → 17}/include/htmintrin.h +0 -0
  147. /package/lib/clang/{16 → 17}/include/htmxlintrin.h +0 -0
  148. /package/lib/clang/{16 → 17}/include/hvx_hexagon_protos.h +0 -0
  149. /package/lib/clang/{16 → 17}/include/ia32intrin.h +0 -0
  150. /package/lib/clang/{16 → 17}/include/intrin.h +0 -0
  151. /package/lib/clang/{16 → 17}/include/inttypes.h +0 -0
  152. /package/lib/clang/{16 → 17}/include/invpcidintrin.h +0 -0
  153. /package/lib/clang/{16 → 17}/include/iso646.h +0 -0
  154. /package/lib/clang/{16 → 17}/include/keylockerintrin.h +0 -0
  155. /package/lib/clang/{16 → 17}/include/larchintrin.h +0 -0
  156. /package/lib/clang/{16 → 17}/include/lwpintrin.h +0 -0
  157. /package/lib/clang/{16 → 17}/include/lzcntintrin.h +0 -0
  158. /package/lib/clang/{16 → 17}/include/mm3dnow.h +0 -0
  159. /package/lib/clang/{16 → 17}/include/mm_malloc.h +0 -0
  160. /package/lib/clang/{16 → 17}/include/mmintrin.h +0 -0
  161. /package/lib/clang/{16 → 17}/include/module.modulemap +0 -0
  162. /package/lib/clang/{16 → 17}/include/movdirintrin.h +0 -0
  163. /package/lib/clang/{16 → 17}/include/msa.h +0 -0
  164. /package/lib/clang/{16 → 17}/include/nmmintrin.h +0 -0
  165. /package/lib/clang/{16 → 17}/include/opencl-c.h +0 -0
  166. /package/lib/clang/{16 → 17}/include/openmp_wrappers/cmath +0 -0
  167. /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex +0 -0
  168. /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex.h +0 -0
  169. /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex_cmath.h +0 -0
  170. /package/lib/clang/{16 → 17}/include/openmp_wrappers/math.h +0 -0
  171. /package/lib/clang/{16 → 17}/include/pconfigintrin.h +0 -0
  172. /package/lib/clang/{16 → 17}/include/pkuintrin.h +0 -0
  173. /package/lib/clang/{16 → 17}/include/popcntintrin.h +0 -0
  174. /package/lib/clang/{16 → 17}/include/ppc_wrappers/bmi2intrin.h +0 -0
  175. /package/lib/clang/{16 → 17}/include/ppc_wrappers/bmiintrin.h +0 -0
  176. /package/lib/clang/{16 → 17}/include/ppc_wrappers/immintrin.h +0 -0
  177. /package/lib/clang/{16 → 17}/include/ppc_wrappers/mm_malloc.h +0 -0
  178. /package/lib/clang/{16 → 17}/include/ppc_wrappers/mmintrin.h +0 -0
  179. /package/lib/clang/{16 → 17}/include/ppc_wrappers/pmmintrin.h +0 -0
  180. /package/lib/clang/{16 → 17}/include/ppc_wrappers/tmmintrin.h +0 -0
  181. /package/lib/clang/{16 → 17}/include/ppc_wrappers/x86gprintrin.h +0 -0
  182. /package/lib/clang/{16 → 17}/include/ppc_wrappers/x86intrin.h +0 -0
  183. /package/lib/clang/{16 → 17}/include/ppc_wrappers/xmmintrin.h +0 -0
  184. /package/lib/clang/{16 → 17}/include/prfchiintrin.h +0 -0
  185. /package/lib/clang/{16 → 17}/include/prfchwintrin.h +0 -0
  186. /package/lib/clang/{16 → 17}/include/ptwriteintrin.h +0 -0
  187. /package/lib/clang/{16 → 17}/include/raointintrin.h +0 -0
  188. /package/lib/clang/{16 → 17}/include/rdpruintrin.h +0 -0
  189. /package/lib/clang/{16 → 17}/include/rtmintrin.h +0 -0
  190. /package/lib/clang/{16 → 17}/include/s390intrin.h +0 -0
  191. /package/lib/clang/{16 → 17}/include/serializeintrin.h +0 -0
  192. /package/lib/clang/{16 → 17}/include/sgxintrin.h +0 -0
  193. /package/lib/clang/{16 → 17}/include/smmintrin.h +0 -0
  194. /package/lib/clang/{16 → 17}/include/stdarg.h +0 -0
  195. /package/lib/clang/{16 → 17}/include/stdbool.h +0 -0
  196. /package/lib/clang/{16 → 17}/include/stdint.h +0 -0
  197. /package/lib/clang/{16 → 17}/include/stdnoreturn.h +0 -0
  198. /package/lib/clang/{16 → 17}/include/tbmintrin.h +0 -0
  199. /package/lib/clang/{16 → 17}/include/tgmath.h +0 -0
  200. /package/lib/clang/{16 → 17}/include/tmmintrin.h +0 -0
  201. /package/lib/clang/{16 → 17}/include/tsxldtrkintrin.h +0 -0
  202. /package/lib/clang/{16 → 17}/include/uintrintrin.h +0 -0
  203. /package/lib/clang/{16 → 17}/include/unwind.h +0 -0
  204. /package/lib/clang/{16 → 17}/include/vadefs.h +0 -0
  205. /package/lib/clang/{16 → 17}/include/vaesintrin.h +0 -0
  206. /package/lib/clang/{16 → 17}/include/varargs.h +0 -0
  207. /package/lib/clang/{16 → 17}/include/vecintrin.h +0 -0
  208. /package/lib/clang/{16 → 17}/include/velintrin.h +0 -0
  209. /package/lib/clang/{16 → 17}/include/velintrin_approx.h +0 -0
  210. /package/lib/clang/{16 → 17}/include/velintrin_gen.h +0 -0
  211. /package/lib/clang/{16 → 17}/include/vpclmulqdqintrin.h +0 -0
  212. /package/lib/clang/{16 → 17}/include/waitpkgintrin.h +0 -0
  213. /package/lib/clang/{16 → 17}/include/wbnoinvdintrin.h +0 -0
  214. /package/lib/clang/{16 → 17}/include/wmmintrin.h +0 -0
  215. /package/lib/clang/{16 → 17}/include/x86gprintrin.h +0 -0
  216. /package/lib/clang/{16 → 17}/include/x86intrin.h +0 -0
  217. /package/lib/clang/{16 → 17}/include/xmmintrin.h +0 -0
  218. /package/lib/clang/{16 → 17}/include/xopintrin.h +0 -0
  219. /package/lib/clang/{16 → 17}/include/xsaveintrin.h +0 -0
  220. /package/lib/clang/{16 → 17}/include/xsaveoptintrin.h +0 -0
  221. /package/lib/clang/{16 → 17}/include/xsavesintrin.h +0 -0
  222. /package/lib/clang/{16 → 17}/include/xtestintrin.h +0 -0
@@ -52,7 +52,11 @@
52
52
  #define LONG_MIN (-__LONG_MAX__ -1L)
53
53
 
54
54
  #define UCHAR_MAX (__SCHAR_MAX__*2 +1)
55
- #define USHRT_MAX (__SHRT_MAX__ *2 +1)
55
+ #if __SHRT_WIDTH__ < __INT_WIDTH__
56
+ #define USHRT_MAX (__SHRT_MAX__ * 2 + 1)
57
+ #else
58
+ #define USHRT_MAX (__SHRT_MAX__ * 2U + 1U)
59
+ #endif
56
60
  #define UINT_MAX (__INT_MAX__ *2U +1U)
57
61
  #define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
58
62
 
@@ -0,0 +1,85 @@
1
+ //===-- Wrapper for C standard ctype.h declarations on the GPU ------------===//
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 __CLANG_LLVM_LIBC_WRAPPERS_CTYPE_H__
10
+ #define __CLANG_LLVM_LIBC_WRAPPERS_CTYPE_H__
11
+
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
13
+ #error "This file is for GPU offloading compilation only"
14
+ #endif
15
+
16
+ #include_next <ctype.h>
17
+
18
+ #if __has_include(<llvm-libc-decls/ctype.h>)
19
+
20
+ #if defined(__HIP__) || defined(__CUDA__)
21
+ #define __LIBC_ATTRS __attribute__((device))
22
+ #endif
23
+
24
+ // The GNU headers like to provide these as macros, we need to undefine them so
25
+ // they do not conflict with the following definitions for the GPU.
26
+
27
+ #pragma push_macro("isalnum")
28
+ #pragma push_macro("isalpha")
29
+ #pragma push_macro("isblank")
30
+ #pragma push_macro("iscntrl")
31
+ #pragma push_macro("isdigit")
32
+ #pragma push_macro("isgraph")
33
+ #pragma push_macro("islower")
34
+ #pragma push_macro("isprint")
35
+ #pragma push_macro("ispunct")
36
+ #pragma push_macro("isspace")
37
+ #pragma push_macro("isupper")
38
+ #pragma push_macro("isxdigit")
39
+ #pragma push_macro("tolower")
40
+ #pragma push_macro("toupper")
41
+
42
+ #undef isalnum
43
+ #undef isalpha
44
+ #undef iscntrl
45
+ #undef isdigit
46
+ #undef islower
47
+ #undef isgraph
48
+ #undef isprint
49
+ #undef ispunct
50
+ #undef isspace
51
+ #undef isupper
52
+ #undef isblank
53
+ #undef isxdigit
54
+ #undef tolower
55
+ #undef toupper
56
+
57
+ #pragma omp begin declare target
58
+
59
+ #include <llvm-libc-decls/ctype.h>
60
+
61
+ #pragma omp end declare target
62
+
63
+ // Restore the original macros when compiling on the host.
64
+ #if !defined(__NVPTX__) && !defined(__AMDGPU__)
65
+ #pragma pop_macro("isalnum")
66
+ #pragma pop_macro("isalpha")
67
+ #pragma pop_macro("isblank")
68
+ #pragma pop_macro("iscntrl")
69
+ #pragma pop_macro("isdigit")
70
+ #pragma pop_macro("isgraph")
71
+ #pragma pop_macro("islower")
72
+ #pragma pop_macro("isprint")
73
+ #pragma pop_macro("ispunct")
74
+ #pragma pop_macro("isspace")
75
+ #pragma pop_macro("isupper")
76
+ #pragma pop_macro("isxdigit")
77
+ #pragma pop_macro("tolower")
78
+ #pragma pop_macro("toupper")
79
+ #endif
80
+
81
+ #undef __LIBC_ATTRS
82
+
83
+ #endif
84
+
85
+ #endif // __CLANG_LLVM_LIBC_WRAPPERS_CTYPE_H__
@@ -0,0 +1,34 @@
1
+ //===-- Wrapper for C standard inttypes.h declarations on the GPU ---------===//
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 __CLANG_LLVM_LIBC_WRAPPERS_INTTYPES_H__
10
+ #define __CLANG_LLVM_LIBC_WRAPPERS_INTTYPES_H__
11
+
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
13
+ #error "This file is for GPU offloading compilation only"
14
+ #endif
15
+
16
+ #include_next <inttypes.h>
17
+
18
+ #if __has_include(<llvm-libc-decls/inttypes.h>)
19
+
20
+ #if defined(__HIP__) || defined(__CUDA__)
21
+ #define __LIBC_ATTRS __attribute__((device))
22
+ #endif
23
+
24
+ #pragma omp begin declare target
25
+
26
+ #include <llvm-libc-decls/inttypes.h>
27
+
28
+ #pragma omp end declare target
29
+
30
+ #undef __LIBC_ATTRS
31
+
32
+ #endif
33
+
34
+ #endif // __CLANG_LLVM_LIBC_WRAPPERS_INTTYPES_H__
@@ -0,0 +1,34 @@
1
+ //===-- Wrapper for C standard stdio.h declarations on the GPU ------------===//
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 __CLANG_LLVM_LIBC_WRAPPERS_STDIO_H__
10
+ #define __CLANG_LLVM_LIBC_WRAPPERS_STDIO_H__
11
+
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
13
+ #error "This file is for GPU offloading compilation only"
14
+ #endif
15
+
16
+ #include_next <stdio.h>
17
+
18
+ #if __has_include(<llvm-libc-decls/stdio.h>)
19
+
20
+ #if defined(__HIP__) || defined(__CUDA__)
21
+ #define __LIBC_ATTRS __attribute__((device))
22
+ #endif
23
+
24
+ #pragma omp begin declare target
25
+
26
+ #include <llvm-libc-decls/stdio.h>
27
+
28
+ #pragma omp end declare target
29
+
30
+ #undef __LIBC_ATTRS
31
+
32
+ #endif
33
+
34
+ #endif // __CLANG_LLVM_LIBC_WRAPPERS_STDIO_H__
@@ -0,0 +1,42 @@
1
+ //===-- Wrapper for C standard stdlib.h declarations on the GPU -----------===//
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 __CLANG_LLVM_LIBC_WRAPPERS_STDLIB_H__
10
+ #define __CLANG_LLVM_LIBC_WRAPPERS_STDLIB_H__
11
+
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
13
+ #error "This file is for GPU offloading compilation only"
14
+ #endif
15
+
16
+ #include_next <stdlib.h>
17
+
18
+ #if __has_include(<llvm-libc-decls/stdlib.h>)
19
+
20
+ #if defined(__HIP__) || defined(__CUDA__)
21
+ #define __LIBC_ATTRS __attribute__((device))
22
+ #endif
23
+
24
+ #pragma omp begin declare target
25
+
26
+ // The LLVM C library uses this type so we forward declare it.
27
+ typedef void (*__atexithandler_t)(void);
28
+
29
+ // Enforce ABI compatibility with the structs used by the LLVM C library.
30
+ _Static_assert(__builtin_offsetof(div_t, quot) == 0, "ABI mismatch!");
31
+ _Static_assert(__builtin_offsetof(ldiv_t, quot) == 0, "ABI mismatch!");
32
+ _Static_assert(__builtin_offsetof(lldiv_t, quot) == 0, "ABI mismatch!");
33
+
34
+ #include <llvm-libc-decls/stdlib.h>
35
+
36
+ #pragma omp end declare target
37
+
38
+ #undef __LIBC_ATTRS
39
+
40
+ #endif
41
+
42
+ #endif // __CLANG_LLVM_LIBC_WRAPPERS_STDLIB_H__
@@ -0,0 +1,37 @@
1
+ //===-- Wrapper for C standard string.h declarations on the GPU -----------===//
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 __CLANG_LLVM_LIBC_WRAPPERS_STRING_H__
10
+ #define __CLANG_LLVM_LIBC_WRAPPERS_STRING_H__
11
+
12
+ #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__)
13
+ #error "This file is for GPU offloading compilation only"
14
+ #endif
15
+
16
+ // FIXME: The GNU headers provide C++ standard compliant headers when in C++
17
+ // mode and the LLVM libc does not. We cannot enable memchr, strchr, strchrnul,
18
+ // strpbrk, strrchr, strstr, or strcasestr until this is addressed.
19
+ #include_next <string.h>
20
+
21
+ #if __has_include(<llvm-libc-decls/string.h>)
22
+
23
+ #if defined(__HIP__) || defined(__CUDA__)
24
+ #define __LIBC_ATTRS __attribute__((device))
25
+ #endif
26
+
27
+ #pragma omp begin declare target
28
+
29
+ #include <llvm-libc-decls/string.h>
30
+
31
+ #pragma omp end declare target
32
+
33
+ #undef __LIBC_ATTRS
34
+
35
+ #endif
36
+
37
+ #endif // __CLANG_LLVM_LIBC_WRAPPERS_STRING_H__
@@ -0,0 +1,62 @@
1
+ /*===---- mwaitxintrin.h - MONITORX/MWAITX intrinsics ----------------------===
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 __X86INTRIN_H
11
+ #error "Never use <mwaitxintrin.h> directly; include <x86intrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __MWAITXINTRIN_H
15
+ #define __MWAITXINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("mwaitx")))
19
+
20
+ /// Establishes a linear address memory range to be monitored and puts
21
+ /// the processor in the monitor event pending state. Data stored in the
22
+ /// monitored address range causes the processor to exit the pending state.
23
+ ///
24
+ /// \headerfile <x86intrin.h>
25
+ ///
26
+ /// This intrinsic corresponds to the \c MONITORX instruction.
27
+ ///
28
+ /// \param __p
29
+ /// The memory range to be monitored. The size of the range is determined by
30
+ /// CPUID function 0000_0005h.
31
+ /// \param __extensions
32
+ /// Optional extensions for the monitoring state.
33
+ /// \param __hints
34
+ /// Optional hints for the monitoring state.
35
+ static __inline__ void __DEFAULT_FN_ATTRS
36
+ _mm_monitorx(void * __p, unsigned __extensions, unsigned __hints)
37
+ {
38
+ __builtin_ia32_monitorx(__p, __extensions, __hints);
39
+ }
40
+
41
+ /// Used with the \c MONITORX instruction to wait while the processor is in
42
+ /// the monitor event pending state. Data stored in the monitored address
43
+ /// range, or an interrupt, causes the processor to exit the pending state.
44
+ ///
45
+ /// \headerfile <x86intrin.h>
46
+ ///
47
+ /// This intrinsic corresponds to the \c MWAITX instruction.
48
+ ///
49
+ /// \param __extensions
50
+ /// Optional extensions for the monitoring state, which can vary by
51
+ /// processor.
52
+ /// \param __hints
53
+ /// Optional hints for the monitoring state, which can vary by processor.
54
+ static __inline__ void __DEFAULT_FN_ATTRS
55
+ _mm_mwaitx(unsigned __extensions, unsigned __hints, unsigned __clock)
56
+ {
57
+ __builtin_ia32_mwaitx(__extensions, __hints, __clock);
58
+ }
59
+
60
+ #undef __DEFAULT_FN_ATTRS
61
+
62
+ #endif /* __MWAITXINTRIN_H */
@@ -474,6 +474,9 @@ typedef enum memory_order
474
474
  #define CLK_HALF_FLOAT 0x10DD
475
475
  #define CLK_FLOAT 0x10DE
476
476
  #define CLK_UNORM_INT24 0x10DF
477
+ #if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
478
+ #define CLK_UNORM_INT_101010_2 0x10E0
479
+ #endif // __OPENCL_C_VERSION__ >= CL_VERSION_3_0
477
480
 
478
481
  // Channel order, numbering must be aligned with cl_channel_order in cl.h
479
482
  //
@@ -40,7 +40,6 @@ extern "C" {
40
40
 
41
41
  // Import types which will be used by __clang_hip_libdevice_declares.h
42
42
  #ifndef __cplusplus
43
- #include <stdbool.h>
44
43
  #include <stdint.h>
45
44
  #endif
46
45
 
@@ -13,7 +13,7 @@
13
13
  // which do not use nothrow_t are provided without the <new> header.
14
14
  #include_next <new>
15
15
 
16
- #if defined(__NVPTX__) && defined(_OPENMP)
16
+ #if (defined(__NVPTX__) || defined(__AMDGPU__)) && defined(_OPENMP)
17
17
 
18
18
  #include <cstdlib>
19
19
 
@@ -253,9 +253,12 @@ _mm_movedup_pd(__m128d __a)
253
253
  /// the processor in the monitor event pending state. Data stored in the
254
254
  /// monitored address range causes the processor to exit the pending state.
255
255
  ///
256
+ /// The \c MONITOR instruction can be used in kernel mode, and in other modes
257
+ /// if MSR <c> C001_0015h[MonMwaitUserEn] </c> is set.
258
+ ///
256
259
  /// \headerfile <x86intrin.h>
257
260
  ///
258
- /// This intrinsic corresponds to the <c> MONITOR </c> instruction.
261
+ /// This intrinsic corresponds to the \c MONITOR instruction.
259
262
  ///
260
263
  /// \param __p
261
264
  /// The memory range to be monitored. The size of the range is determined by
@@ -270,19 +273,22 @@ _mm_monitor(void const *__p, unsigned __extensions, unsigned __hints)
270
273
  __builtin_ia32_monitor(__p, __extensions, __hints);
271
274
  }
272
275
 
273
- /// Used with the MONITOR instruction to wait while the processor is in
276
+ /// Used with the \c MONITOR instruction to wait while the processor is in
274
277
  /// the monitor event pending state. Data stored in the monitored address
275
- /// range causes the processor to exit the pending state.
278
+ /// range, or an interrupt, causes the processor to exit the pending state.
279
+ ///
280
+ /// The \c MWAIT instruction can be used in kernel mode, and in other modes if
281
+ /// MSR <c> C001_0015h[MonMwaitUserEn] </c> is set.
276
282
  ///
277
283
  /// \headerfile <x86intrin.h>
278
284
  ///
279
- /// This intrinsic corresponds to the <c> MWAIT </c> instruction.
285
+ /// This intrinsic corresponds to the \c MWAIT instruction.
280
286
  ///
281
287
  /// \param __extensions
282
- /// Optional extensions for the monitoring state, which may vary by
288
+ /// Optional extensions for the monitoring state, which can vary by
283
289
  /// processor.
284
290
  /// \param __hints
285
- /// Optional hints for the monitoring state, which may vary by processor.
291
+ /// Optional hints for the monitoring state, which can vary by processor.
286
292
  static __inline__ void __DEFAULT_FN_ATTRS
287
293
  _mm_mwait(unsigned __extensions, unsigned __hints)
288
294
  {
@@ -46,6 +46,7 @@
46
46
 
47
47
  /* SSE2 */
48
48
  typedef __vector double __v2df;
49
+ typedef __vector float __v4f;
49
50
  typedef __vector long long __v2di;
50
51
  typedef __vector unsigned long long __v2du;
51
52
  typedef __vector int __v4si;
@@ -951,7 +952,7 @@ extern __inline __m128d
951
952
  _mm_cvtpi32_pd(__m64 __A) {
952
953
  __v4si __temp;
953
954
  __v2di __tmp2;
954
- __v2df __result;
955
+ __v4f __result;
955
956
 
956
957
  __temp = (__v4si)vec_splats(__A);
957
958
  __tmp2 = (__v2di)vec_unpackl(__temp);
@@ -305,9 +305,9 @@ extern __inline int
305
305
  extern __inline __m128i
306
306
  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
307
307
  _mm_blend_epi16(__m128i __A, __m128i __B, const int __imm8) {
308
- __v16qi __charmask = vec_splats((signed char)__imm8);
308
+ __v16qu __charmask = vec_splats((unsigned char)__imm8);
309
309
  __charmask = vec_gb(__charmask);
310
- __v8hu __shortmask = (__v8hu)vec_unpackh(__charmask);
310
+ __v8hu __shortmask = (__v8hu)vec_unpackh((__v16qi)__charmask);
311
311
  #ifdef __BIG_ENDIAN__
312
312
  __shortmask = vec_reve(__shortmask);
313
313
  #endif
@@ -0,0 +1,105 @@
1
+ /*===---- rdseedintrin.h - RDSEED intrinsics -------------------------------===
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 __IMMINTRIN_H
11
+ #error "Never use <rdseedintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __RDSEEDINTRIN_H
15
+ #define __RDSEEDINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("rdseed")))
19
+
20
+ /// Stores a hardware-generated 16-bit random value in the memory at \a __p.
21
+ ///
22
+ /// The random number generator complies with NIST SP800-90B and SP800-90C.
23
+ ///
24
+ /// \code{.operation}
25
+ /// IF HW_NRND_GEN.ready == 1
26
+ /// Store16(__p, HW_NRND_GEN.data)
27
+ /// result := 1
28
+ /// ELSE
29
+ /// Store16(__p, 0)
30
+ /// result := 0
31
+ /// END
32
+ /// \endcode
33
+ ///
34
+ /// \headerfile <immintrin.h>
35
+ ///
36
+ /// This intrinsic corresponds to the \c RDSEED instruction.
37
+ ///
38
+ /// \param __p
39
+ /// Pointer to memory for storing the 16-bit random number.
40
+ /// \returns 1 if a random number was generated, 0 if not.
41
+ static __inline__ int __DEFAULT_FN_ATTRS
42
+ _rdseed16_step(unsigned short *__p)
43
+ {
44
+ return (int) __builtin_ia32_rdseed16_step(__p);
45
+ }
46
+
47
+ /// Stores a hardware-generated 32-bit random value in the memory at \a __p.
48
+ ///
49
+ /// The random number generator complies with NIST SP800-90B and SP800-90C.
50
+ ///
51
+ /// \code{.operation}
52
+ /// IF HW_NRND_GEN.ready == 1
53
+ /// Store32(__p, HW_NRND_GEN.data)
54
+ /// result := 1
55
+ /// ELSE
56
+ /// Store32(__p, 0)
57
+ /// result := 0
58
+ /// END
59
+ /// \endcode
60
+ ///
61
+ /// \headerfile <immintrin.h>
62
+ ///
63
+ /// This intrinsic corresponds to the \c RDSEED instruction.
64
+ ///
65
+ /// \param __p
66
+ /// Pointer to memory for storing the 32-bit random number.
67
+ /// \returns 1 if a random number was generated, 0 if not.
68
+ static __inline__ int __DEFAULT_FN_ATTRS
69
+ _rdseed32_step(unsigned int *__p)
70
+ {
71
+ return (int) __builtin_ia32_rdseed32_step(__p);
72
+ }
73
+
74
+ #ifdef __x86_64__
75
+ /// Stores a hardware-generated 64-bit random value in the memory at \a __p.
76
+ ///
77
+ /// The random number generator complies with NIST SP800-90B and SP800-90C.
78
+ ///
79
+ /// \code{.operation}
80
+ /// IF HW_NRND_GEN.ready == 1
81
+ /// Store64(__p, HW_NRND_GEN.data)
82
+ /// result := 1
83
+ /// ELSE
84
+ /// Store64(__p, 0)
85
+ /// result := 0
86
+ /// END
87
+ /// \endcode
88
+ ///
89
+ /// \headerfile <immintrin.h>
90
+ ///
91
+ /// This intrinsic corresponds to the \c RDSEED instruction.
92
+ ///
93
+ /// \param __p
94
+ /// Pointer to memory for storing the 64-bit random number.
95
+ /// \returns 1 if a random number was generated, 0 if not.
96
+ static __inline__ int __DEFAULT_FN_ATTRS
97
+ _rdseed64_step(unsigned long long *__p)
98
+ {
99
+ return (int) __builtin_ia32_rdseed64_step(__p);
100
+ }
101
+ #endif
102
+
103
+ #undef __DEFAULT_FN_ATTRS
104
+
105
+ #endif /* __RDSEEDINTRIN_H */
@@ -0,0 +1,28 @@
1
+ /*===---- riscv_ntlh.h - RISC-V NTLH intrinsics ----------------------------===
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 __RISCV_NTLH_H
11
+ #define __RISCV_NTLH_H
12
+
13
+ #ifndef __riscv_zihintntl
14
+ #error "NTLH intrinsics require the NTLH extension."
15
+ #endif
16
+
17
+ enum {
18
+ __RISCV_NTLH_INNERMOST_PRIVATE = 2,
19
+ __RISCV_NTLH_ALL_PRIVATE,
20
+ __RISCV_NTLH_INNERMOST_SHARED,
21
+ __RISCV_NTLH_ALL
22
+ };
23
+
24
+ #define __riscv_ntl_load(PTR, DOMAIN) __builtin_riscv_ntl_load((PTR), (DOMAIN))
25
+ #define __riscv_ntl_store(PTR, VAL, DOMAIN) \
26
+ __builtin_riscv_ntl_store((PTR), (VAL), (DOMAIN))
27
+
28
+ #endif