@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
@@ -0,0 +1,480 @@
1
+ //===----- hlsl_intrinsics.h - HLSL definitions for 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
+ #ifndef _HLSL_HLSL_INTRINSICS_H_
10
+ #define _HLSL_HLSL_INTRINSICS_H_
11
+
12
+ namespace hlsl {
13
+
14
+ __attribute__((availability(shadermodel, introduced = 6.0)))
15
+ __attribute__((clang_builtin_alias(__builtin_hlsl_wave_active_count_bits))) uint
16
+ WaveActiveCountBits(bool bBit);
17
+
18
+ // abs builtins
19
+ #ifdef __HLSL_ENABLE_16_BIT
20
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
21
+ int16_t abs(int16_t);
22
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
23
+ int16_t2 abs(int16_t2);
24
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
25
+ int16_t3 abs(int16_t3);
26
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
27
+ int16_t4 abs(int16_t4);
28
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) half abs(half);
29
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
30
+ half2 abs(half2);
31
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
32
+ half3 abs(half3);
33
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
34
+ half4 abs(half4);
35
+ #endif
36
+
37
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int abs(int);
38
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int2 abs(int2);
39
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int3 abs(int3);
40
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int4 abs(int4);
41
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) float
42
+ abs(float);
43
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
44
+ float2 abs(float2);
45
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
46
+ float3 abs(float3);
47
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
48
+ float4 abs(float4);
49
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
50
+ int64_t abs(int64_t);
51
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
52
+ int64_t2 abs(int64_t2);
53
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
54
+ int64_t3 abs(int64_t3);
55
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
56
+ int64_t4 abs(int64_t4);
57
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) double
58
+ abs(double);
59
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
60
+ double2 abs(double2);
61
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
62
+ double3 abs(double3);
63
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
64
+ double4 abs(double4);
65
+
66
+ // sqrt builtins
67
+ __attribute__((clang_builtin_alias(__builtin_sqrt))) double sqrt(double In);
68
+ __attribute__((clang_builtin_alias(__builtin_sqrtf))) float sqrt(float In);
69
+
70
+ #ifdef __HLSL_ENABLE_16_BIT
71
+ __attribute__((clang_builtin_alias(__builtin_sqrtf16))) half sqrt(half In);
72
+ #endif
73
+
74
+ // ceil builtins
75
+ #ifdef __HLSL_ENABLE_16_BIT
76
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
77
+ half ceil(half);
78
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
79
+ half2 ceil(half2);
80
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
81
+ half3 ceil(half3);
82
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
83
+ half4 ceil(half4);
84
+ #endif
85
+
86
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil))) float
87
+ ceil(float);
88
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
89
+ float2 ceil(float2);
90
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
91
+ float3 ceil(float3);
92
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
93
+ float4 ceil(float4);
94
+
95
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil))) double
96
+ ceil(double);
97
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
98
+ double2 ceil(double2);
99
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
100
+ double3 ceil(double3);
101
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
102
+ double4 ceil(double4);
103
+
104
+ // floor builtins
105
+ #ifdef __HLSL_ENABLE_16_BIT
106
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
107
+ half floor(half);
108
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
109
+ half2 floor(half2);
110
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
111
+ half3 floor(half3);
112
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
113
+ half4 floor(half4);
114
+ #endif
115
+
116
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor))) float
117
+ floor(float);
118
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
119
+ float2 floor(float2);
120
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
121
+ float3 floor(float3);
122
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
123
+ float4 floor(float4);
124
+
125
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor))) double
126
+ floor(double);
127
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
128
+ double2 floor(double2);
129
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
130
+ double3 floor(double3);
131
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
132
+ double4 floor(double4);
133
+
134
+ // cos builtins
135
+ #ifdef __HLSL_ENABLE_16_BIT
136
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos))) half cos(half);
137
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
138
+ half2 cos(half2);
139
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
140
+ half3 cos(half3);
141
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
142
+ half4 cos(half4);
143
+ #endif
144
+
145
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos))) float
146
+ cos(float);
147
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
148
+ float2 cos(float2);
149
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
150
+ float3 cos(float3);
151
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
152
+ float4 cos(float4);
153
+
154
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos))) double
155
+ cos(double);
156
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
157
+ double2 cos(double2);
158
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
159
+ double3 cos(double3);
160
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
161
+ double4 cos(double4);
162
+
163
+ // sin builtins
164
+ #ifdef __HLSL_ENABLE_16_BIT
165
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin))) half sin(half);
166
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
167
+ half2 sin(half2);
168
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
169
+ half3 sin(half3);
170
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
171
+ half4 sin(half4);
172
+ #endif
173
+
174
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin))) float
175
+ sin(float);
176
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
177
+ float2 sin(float2);
178
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
179
+ float3 sin(float3);
180
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
181
+ float4 sin(float4);
182
+
183
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin))) double
184
+ sin(double);
185
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
186
+ double2 sin(double2);
187
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
188
+ double3 sin(double3);
189
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
190
+ double4 sin(double4);
191
+
192
+ // trunc builtins
193
+ #ifdef __HLSL_ENABLE_16_BIT
194
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
195
+ half trunc(half);
196
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
197
+ half2 trunc(half2);
198
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
199
+ half3 trunc(half3);
200
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
201
+ half4 trunc(half4);
202
+ #endif
203
+
204
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc))) float
205
+ trunc(float);
206
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
207
+ float2 trunc(float2);
208
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
209
+ float3 trunc(float3);
210
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
211
+ float4 trunc(float4);
212
+
213
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc))) double
214
+ trunc(double);
215
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
216
+ double2 trunc(double2);
217
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
218
+ double3 trunc(double3);
219
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
220
+ double4 trunc(double4);
221
+
222
+ // log builtins
223
+ #ifdef __HLSL_ENABLE_16_BIT
224
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log))) half log(half);
225
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
226
+ half2 log(half2);
227
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
228
+ half3 log(half3);
229
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
230
+ half4 log(half4);
231
+ #endif
232
+
233
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log))) float
234
+ log(float);
235
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
236
+ float2 log(float2);
237
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
238
+ float3 log(float3);
239
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
240
+ float4 log(float4);
241
+
242
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log))) double
243
+ log(double);
244
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
245
+ double2 log(double2);
246
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
247
+ double3 log(double3);
248
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log)))
249
+ double4 log(double4);
250
+
251
+ // log2 builtins
252
+ #ifdef __HLSL_ENABLE_16_BIT
253
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
254
+ half log2(half);
255
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
256
+ half2 log2(half2);
257
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
258
+ half3 log2(half3);
259
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
260
+ half4 log2(half4);
261
+ #endif
262
+
263
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2))) float
264
+ log2(float);
265
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
266
+ float2 log2(float2);
267
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
268
+ float3 log2(float3);
269
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
270
+ float4 log2(float4);
271
+
272
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2))) double
273
+ log2(double);
274
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
275
+ double2 log2(double2);
276
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
277
+ double3 log2(double3);
278
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log2)))
279
+ double4 log2(double4);
280
+
281
+ // log10 builtins
282
+ #ifdef __HLSL_ENABLE_16_BIT
283
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
284
+ half log10(half);
285
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
286
+ half2 log10(half2);
287
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
288
+ half3 log10(half3);
289
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
290
+ half4 log10(half4);
291
+ #endif
292
+
293
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10))) float
294
+ log10(float);
295
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
296
+ float2 log10(float2);
297
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
298
+ float3 log10(float3);
299
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
300
+ float4 log10(float4);
301
+
302
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10))) double
303
+ log10(double);
304
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
305
+ double2 log10(double2);
306
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
307
+ double3 log10(double3);
308
+ __attribute__((clang_builtin_alias(__builtin_elementwise_log10)))
309
+ double4 log10(double4);
310
+
311
+ // max builtins
312
+ #ifdef __HLSL_ENABLE_16_BIT
313
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
314
+ half max(half, half);
315
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
316
+ half2 max(half2, half2);
317
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
318
+ half3 max(half3, half3);
319
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
320
+ half4 max(half4, half4);
321
+
322
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
323
+ int16_t max(int16_t, int16_t);
324
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
325
+ int16_t2 max(int16_t2, int16_t2);
326
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
327
+ int16_t3 max(int16_t3, int16_t3);
328
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
329
+ int16_t4 max(int16_t4, int16_t4);
330
+
331
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
332
+ uint16_t max(uint16_t, uint16_t);
333
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
334
+ uint16_t2 max(uint16_t2, uint16_t2);
335
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
336
+ uint16_t3 max(uint16_t3, uint16_t3);
337
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
338
+ uint16_t4 max(uint16_t4, uint16_t4);
339
+ #endif
340
+
341
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max))) int max(int,
342
+ int);
343
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
344
+ int2 max(int2, int2);
345
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
346
+ int3 max(int3, int3);
347
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
348
+ int4 max(int4, int4);
349
+
350
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
351
+ uint max(uint, uint);
352
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
353
+ uint2 max(uint2, uint2);
354
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
355
+ uint3 max(uint3, uint3);
356
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
357
+ uint4 max(uint4, uint4);
358
+
359
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
360
+ int64_t max(int64_t, int64_t);
361
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
362
+ int64_t2 max(int64_t2, int64_t2);
363
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
364
+ int64_t3 max(int64_t3, int64_t3);
365
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
366
+ int64_t4 max(int64_t4, int64_t4);
367
+
368
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
369
+ uint64_t max(uint64_t, uint64_t);
370
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
371
+ uint64_t2 max(uint64_t2, uint64_t2);
372
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
373
+ uint64_t3 max(uint64_t3, uint64_t3);
374
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
375
+ uint64_t4 max(uint64_t4, uint64_t4);
376
+
377
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max))) float
378
+ max(float, float);
379
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
380
+ float2 max(float2, float2);
381
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
382
+ float3 max(float3, float3);
383
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
384
+ float4 max(float4, float4);
385
+
386
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max))) double
387
+ max(double, double);
388
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
389
+ double2 max(double2, double2);
390
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
391
+ double3 max(double3, double3);
392
+ __attribute__((clang_builtin_alias(__builtin_elementwise_max)))
393
+ double4 max(double4, double4);
394
+
395
+ // min builtins
396
+ #ifdef __HLSL_ENABLE_16_BIT
397
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
398
+ half min(half, half);
399
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
400
+ half2 min(half2, half2);
401
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
402
+ half3 min(half3, half3);
403
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
404
+ half4 min(half4, half4);
405
+
406
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
407
+ int16_t min(int16_t, int16_t);
408
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
409
+ int16_t2 min(int16_t2, int16_t2);
410
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
411
+ int16_t3 min(int16_t3, int16_t3);
412
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
413
+ int16_t4 min(int16_t4, int16_t4);
414
+
415
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
416
+ uint16_t min(uint16_t, uint16_t);
417
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
418
+ uint16_t2 min(uint16_t2, uint16_t2);
419
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
420
+ uint16_t3 min(uint16_t3, uint16_t3);
421
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
422
+ uint16_t4 min(uint16_t4, uint16_t4);
423
+ #endif
424
+
425
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min))) int min(int,
426
+ int);
427
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
428
+ int2 min(int2, int2);
429
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
430
+ int3 min(int3, int3);
431
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
432
+ int4 min(int4, int4);
433
+
434
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
435
+ uint min(uint, uint);
436
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
437
+ uint2 min(uint2, uint2);
438
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
439
+ uint3 min(uint3, uint3);
440
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
441
+ uint4 min(uint4, uint4);
442
+
443
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
444
+ int64_t min(int64_t, int64_t);
445
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
446
+ int64_t2 min(int64_t2, int64_t2);
447
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
448
+ int64_t3 min(int64_t3, int64_t3);
449
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
450
+ int64_t4 min(int64_t4, int64_t4);
451
+
452
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
453
+ uint64_t min(uint64_t, uint64_t);
454
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
455
+ uint64_t2 min(uint64_t2, uint64_t2);
456
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
457
+ uint64_t3 min(uint64_t3, uint64_t3);
458
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
459
+ uint64_t4 min(uint64_t4, uint64_t4);
460
+
461
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min))) float
462
+ min(float, float);
463
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
464
+ float2 min(float2, float2);
465
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
466
+ float3 min(float3, float3);
467
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
468
+ float4 min(float4, float4);
469
+
470
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min))) double
471
+ min(double, double);
472
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
473
+ double2 min(double2, double2);
474
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
475
+ double3 min(double3, double3);
476
+ __attribute__((clang_builtin_alias(__builtin_elementwise_min)))
477
+ double4 min(double4, double4);
478
+
479
+ } // namespace hlsl
480
+ #endif //_HLSL_HLSL_INTRINSICS_H_
@@ -269,6 +269,26 @@
269
269
  #include <avxneconvertintrin.h>
270
270
  #endif
271
271
 
272
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
273
+ defined(__SHA512__)
274
+ #include <sha512intrin.h>
275
+ #endif
276
+
277
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
278
+ defined(__SM3__)
279
+ #include <sm3intrin.h>
280
+ #endif
281
+
282
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
283
+ defined(__SM4__)
284
+ #include <sm4intrin.h>
285
+ #endif
286
+
287
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
288
+ defined(__AVXVNNIINT16__)
289
+ #include <avxvnniint16intrin.h>
290
+ #endif
291
+
272
292
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
273
293
  defined(__RDPID__)
274
294
  /// Returns the value of the IA32_TSC_AUX MSR (0xc0000103).
@@ -284,30 +304,53 @@ _rdpid_u32(void) {
284
304
 
285
305
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
286
306
  defined(__RDRND__)
307
+ /// Returns a 16-bit hardware-generated random value.
308
+ ///
309
+ /// \headerfile <immintrin.h>
310
+ ///
311
+ /// This intrinsic corresponds to the <c> RDRAND </c> instruction.
312
+ ///
313
+ /// \param __p
314
+ /// A pointer to a 16-bit memory location to place the random value.
315
+ /// \returns 1 if the value was successfully generated, 0 otherwise.
287
316
  static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
288
317
  _rdrand16_step(unsigned short *__p)
289
318
  {
290
319
  return (int)__builtin_ia32_rdrand16_step(__p);
291
320
  }
292
321
 
322
+ /// Returns a 32-bit hardware-generated random value.
323
+ ///
324
+ /// \headerfile <immintrin.h>
325
+ ///
326
+ /// This intrinsic corresponds to the <c> RDRAND </c> instruction.
327
+ ///
328
+ /// \param __p
329
+ /// A pointer to a 32-bit memory location to place the random value.
330
+ /// \returns 1 if the value was successfully generated, 0 otherwise.
293
331
  static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
294
332
  _rdrand32_step(unsigned int *__p)
295
333
  {
296
334
  return (int)__builtin_ia32_rdrand32_step(__p);
297
335
  }
298
336
 
299
- #ifdef __x86_64__
337
+ /// Returns a 64-bit hardware-generated random value.
338
+ ///
339
+ /// \headerfile <immintrin.h>
340
+ ///
341
+ /// This intrinsic corresponds to the <c> RDRAND </c> instruction.
342
+ ///
343
+ /// \param __p
344
+ /// A pointer to a 64-bit memory location to place the random value.
345
+ /// \returns 1 if the value was successfully generated, 0 otherwise.
300
346
  static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
301
347
  _rdrand64_step(unsigned long long *__p)
302
348
  {
349
+ #ifdef __x86_64__
303
350
  return (int)__builtin_ia32_rdrand64_step(__p);
304
- }
305
351
  #else
306
- // We need to emulate the functionality of 64-bit rdrand with 2 32-bit
307
- // rdrand instructions.
308
- static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
309
- _rdrand64_step(unsigned long long *__p)
310
- {
352
+ // We need to emulate the functionality of 64-bit rdrand with 2 32-bit
353
+ // rdrand instructions.
311
354
  unsigned int __lo, __hi;
312
355
  unsigned int __res_lo = __builtin_ia32_rdrand32_step(&__lo);
313
356
  unsigned int __res_hi = __builtin_ia32_rdrand32_step(&__hi);
@@ -318,55 +361,115 @@ _rdrand64_step(unsigned long long *__p)
318
361
  *__p = 0;
319
362
  return 0;
320
363
  }
321
- }
322
364
  #endif
365
+ }
323
366
  #endif /* __RDRND__ */
324
367
 
325
368
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
326
369
  defined(__FSGSBASE__)
327
370
  #ifdef __x86_64__
371
+ /// Reads the FS base register.
372
+ ///
373
+ /// \headerfile <immintrin.h>
374
+ ///
375
+ /// This intrinsic corresponds to the <c> RDFSBASE </c> instruction.
376
+ ///
377
+ /// \returns The lower 32 bits of the FS base register.
328
378
  static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
329
379
  _readfsbase_u32(void)
330
380
  {
331
381
  return __builtin_ia32_rdfsbase32();
332
382
  }
333
383
 
384
+ /// Reads the FS base register.
385
+ ///
386
+ /// \headerfile <immintrin.h>
387
+ ///
388
+ /// This intrinsic corresponds to the <c> RDFSBASE </c> instruction.
389
+ ///
390
+ /// \returns The contents of the FS base register.
334
391
  static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
335
392
  _readfsbase_u64(void)
336
393
  {
337
394
  return __builtin_ia32_rdfsbase64();
338
395
  }
339
396
 
397
+ /// Reads the GS base register.
398
+ ///
399
+ /// \headerfile <immintrin.h>
400
+ ///
401
+ /// This intrinsic corresponds to the <c> RDGSBASE </c> instruction.
402
+ ///
403
+ /// \returns The lower 32 bits of the GS base register.
340
404
  static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
341
405
  _readgsbase_u32(void)
342
406
  {
343
407
  return __builtin_ia32_rdgsbase32();
344
408
  }
345
409
 
410
+ /// Reads the GS base register.
411
+ ///
412
+ /// \headerfile <immintrin.h>
413
+ ///
414
+ /// This intrinsic corresponds to the <c> RDGSBASE </c> instruction.
415
+ ///
416
+ /// \returns The contents of the GS base register.
346
417
  static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
347
418
  _readgsbase_u64(void)
348
419
  {
349
420
  return __builtin_ia32_rdgsbase64();
350
421
  }
351
422
 
423
+ /// Modifies the FS base register.
424
+ ///
425
+ /// \headerfile <immintrin.h>
426
+ ///
427
+ /// This intrinsic corresponds to the <c> WRFSBASE </c> instruction.
428
+ ///
429
+ /// \param __V
430
+ /// Value to use for the lower 32 bits of the FS base register.
352
431
  static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
353
432
  _writefsbase_u32(unsigned int __V)
354
433
  {
355
434
  __builtin_ia32_wrfsbase32(__V);
356
435
  }
357
436
 
437
+ /// Modifies the FS base register.
438
+ ///
439
+ /// \headerfile <immintrin.h>
440
+ ///
441
+ /// This intrinsic corresponds to the <c> WRFSBASE </c> instruction.
442
+ ///
443
+ /// \param __V
444
+ /// Value to use for the FS base register.
358
445
  static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
359
446
  _writefsbase_u64(unsigned long long __V)
360
447
  {
361
448
  __builtin_ia32_wrfsbase64(__V);
362
449
  }
363
450
 
451
+ /// Modifies the GS base register.
452
+ ///
453
+ /// \headerfile <immintrin.h>
454
+ ///
455
+ /// This intrinsic corresponds to the <c> WRGSBASE </c> instruction.
456
+ ///
457
+ /// \param __V
458
+ /// Value to use for the lower 32 bits of the GS base register.
364
459
  static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
365
460
  _writegsbase_u32(unsigned int __V)
366
461
  {
367
462
  __builtin_ia32_wrgsbase32(__V);
368
463
  }
369
464
 
465
+ /// Modifies the GS base register.
466
+ ///
467
+ /// \headerfile <immintrin.h>
468
+ ///
469
+ /// This intrinsic corresponds to the <c> WRFSBASE </c> instruction.
470
+ ///
471
+ /// \param __V
472
+ /// Value to use for GS base register.
370
473
  static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
371
474
  _writegsbase_u64(unsigned long long __V)
372
475
  {
@@ -538,6 +641,11 @@ _storebe_i64(void * __P, long long __D) {
538
641
  #include <amxintrin.h>
539
642
  #endif
540
643
 
644
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
645
+ defined(__AMX_COMPLEX__)
646
+ #include <amxcomplexintrin.h>
647
+ #endif
648
+
541
649
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
542
650
  defined(__AVX512VP2INTERSECT__)
543
651
  #include <avx512vp2intersectintrin.h>