@cpp-linter/clang-tidy-linux-arm64 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 +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,269 @@
1
+ /*===--------------- sm4intrin.h - SM4 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 <sm4intrin.h> directly; include <immintrin.h> instead."
12
+ #endif // __IMMINTRIN_H
13
+
14
+ #ifndef __SM4INTRIN_H
15
+ #define __SM4INTRIN_H
16
+
17
+ /// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
18
+ /// operates on independent 128-bit lanes. The calculated results are
19
+ /// stored in \a dst.
20
+ /// \headerfile <immintrin.h>
21
+ ///
22
+ /// \code
23
+ /// __m128i _mm_sm4key4_epi32(__m128i __A, __m128i __B)
24
+ /// \endcode
25
+ ///
26
+ /// This intrinsic corresponds to the \c VSM4KEY4 instruction.
27
+ ///
28
+ /// \param __A
29
+ /// A 128-bit vector of [4 x int].
30
+ /// \param __B
31
+ /// A 128-bit vector of [4 x int].
32
+ /// \returns
33
+ /// A 128-bit vector of [4 x int].
34
+ ///
35
+ /// \code{.operation}
36
+ /// DEFINE ROL32(dword, n) {
37
+ /// count := n % 32
38
+ /// dest := (dword << count) | (dword >> (32-count))
39
+ /// RETURN dest
40
+ /// }
41
+ /// DEFINE SBOX_BYTE(dword, i) {
42
+ /// RETURN sbox[dword.byte[i]]
43
+ /// }
44
+ /// DEFINE lower_t(dword) {
45
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
46
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
47
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
48
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
49
+ /// RETURN tmp
50
+ /// }
51
+ /// DEFINE L_KEY(dword) {
52
+ /// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
53
+ /// }
54
+ /// DEFINE T_KEY(dword) {
55
+ /// RETURN L_KEY(lower_t(dword))
56
+ /// }
57
+ /// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
58
+ /// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
59
+ /// }
60
+ /// FOR i:= 0 to 0
61
+ /// P[0] := __B.xmm[i].dword[0]
62
+ /// P[1] := __B.xmm[i].dword[1]
63
+ /// P[2] := __B.xmm[i].dword[2]
64
+ /// P[3] := __B.xmm[i].dword[3]
65
+ /// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
66
+ /// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
67
+ /// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
68
+ /// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
69
+ /// DEST.xmm[i].dword[0] := C[0]
70
+ /// DEST.xmm[i].dword[1] := C[1]
71
+ /// DEST.xmm[i].dword[2] := C[2]
72
+ /// DEST.xmm[i].dword[3] := C[3]
73
+ /// ENDFOR
74
+ /// DEST[MAX:128] := 0
75
+ /// \endcode
76
+ #define _mm_sm4key4_epi32(A, B) \
77
+ (__m128i) __builtin_ia32_vsm4key4128((__v4su)A, (__v4su)B)
78
+
79
+ /// This intrinsic performs four rounds of SM4 key expansion. The intrinsic
80
+ /// operates on independent 128-bit lanes. The calculated results are
81
+ /// stored in \a dst.
82
+ /// \headerfile <immintrin.h>
83
+ ///
84
+ /// \code
85
+ /// __m256i _mm256_sm4key4_epi32(__m256i __A, __m256i __B)
86
+ /// \endcode
87
+ ///
88
+ /// This intrinsic corresponds to the \c VSM4KEY4 instruction.
89
+ ///
90
+ /// \param __A
91
+ /// A 256-bit vector of [8 x int].
92
+ /// \param __B
93
+ /// A 256-bit vector of [8 x int].
94
+ /// \returns
95
+ /// A 256-bit vector of [8 x int].
96
+ ///
97
+ /// \code{.operation}
98
+ /// DEFINE ROL32(dword, n) {
99
+ /// count := n % 32
100
+ /// dest := (dword << count) | (dword >> (32-count))
101
+ /// RETURN dest
102
+ /// }
103
+ /// DEFINE SBOX_BYTE(dword, i) {
104
+ /// RETURN sbox[dword.byte[i]]
105
+ /// }
106
+ /// DEFINE lower_t(dword) {
107
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
108
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
109
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
110
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
111
+ /// RETURN tmp
112
+ /// }
113
+ /// DEFINE L_KEY(dword) {
114
+ /// RETURN dword ^ ROL32(dword, 13) ^ ROL32(dword, 23)
115
+ /// }
116
+ /// DEFINE T_KEY(dword) {
117
+ /// RETURN L_KEY(lower_t(dword))
118
+ /// }
119
+ /// DEFINE F_KEY(X0, X1, X2, X3, round_key) {
120
+ /// RETURN X0 ^ T_KEY(X1 ^ X2 ^ X3 ^ round_key)
121
+ /// }
122
+ /// FOR i:= 0 to 1
123
+ /// P[0] := __B.xmm[i].dword[0]
124
+ /// P[1] := __B.xmm[i].dword[1]
125
+ /// P[2] := __B.xmm[i].dword[2]
126
+ /// P[3] := __B.xmm[i].dword[3]
127
+ /// C[0] := F_KEY(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
128
+ /// C[1] := F_KEY(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
129
+ /// C[2] := F_KEY(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
130
+ /// C[3] := F_KEY(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
131
+ /// DEST.xmm[i].dword[0] := C[0]
132
+ /// DEST.xmm[i].dword[1] := C[1]
133
+ /// DEST.xmm[i].dword[2] := C[2]
134
+ /// DEST.xmm[i].dword[3] := C[3]
135
+ /// ENDFOR
136
+ /// DEST[MAX:256] := 0
137
+ /// \endcode
138
+ #define _mm256_sm4key4_epi32(A, B) \
139
+ (__m256i) __builtin_ia32_vsm4key4256((__v8su)A, (__v8su)B)
140
+
141
+ /// This intrinisc performs four rounds of SM4 encryption. The intrinisc
142
+ /// operates on independent 128-bit lanes. The calculated results are
143
+ /// stored in \a dst.
144
+ /// \headerfile <immintrin.h>
145
+ ///
146
+ /// \code
147
+ /// __m128i _mm_sm4rnds4_epi32(__m128i __A, __m128i __B)
148
+ /// \endcode
149
+ ///
150
+ /// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
151
+ ///
152
+ /// \param __A
153
+ /// A 128-bit vector of [4 x int].
154
+ /// \param __B
155
+ /// A 128-bit vector of [4 x int].
156
+ /// \returns
157
+ /// A 128-bit vector of [4 x int].
158
+ ///
159
+ /// \code{.operation}
160
+ /// DEFINE ROL32(dword, n) {
161
+ /// count := n % 32
162
+ /// dest := (dword << count) | (dword >> (32-count))
163
+ /// RETURN dest
164
+ /// }
165
+ /// DEFINE lower_t(dword) {
166
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
167
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
168
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
169
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
170
+ /// RETURN tmp
171
+ /// }
172
+ /// DEFINE L_RND(dword) {
173
+ /// tmp := dword
174
+ /// tmp := tmp ^ ROL32(dword, 2)
175
+ /// tmp := tmp ^ ROL32(dword, 10)
176
+ /// tmp := tmp ^ ROL32(dword, 18)
177
+ /// tmp := tmp ^ ROL32(dword, 24)
178
+ /// RETURN tmp
179
+ /// }
180
+ /// DEFINE T_RND(dword) {
181
+ /// RETURN L_RND(lower_t(dword))
182
+ /// }
183
+ /// DEFINE F_RND(X0, X1, X2, X3, round_key) {
184
+ /// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
185
+ /// }
186
+ /// FOR i:= 0 to 0
187
+ /// P[0] := __B.xmm[i].dword[0]
188
+ /// P[1] := __B.xmm[i].dword[1]
189
+ /// P[2] := __B.xmm[i].dword[2]
190
+ /// P[3] := __B.xmm[i].dword[3]
191
+ /// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
192
+ /// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
193
+ /// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
194
+ /// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
195
+ /// DEST.xmm[i].dword[0] := C[0]
196
+ /// DEST.xmm[i].dword[1] := C[1]
197
+ /// DEST.xmm[i].dword[2] := C[2]
198
+ /// DEST.xmm[i].dword[3] := C[3]
199
+ /// ENDFOR
200
+ /// DEST[MAX:128] := 0
201
+ /// \endcode
202
+ #define _mm_sm4rnds4_epi32(A, B) \
203
+ (__m128i) __builtin_ia32_vsm4rnds4128((__v4su)A, (__v4su)B)
204
+
205
+ /// This intrinisc performs four rounds of SM4 encryption. The intrinisc
206
+ /// operates on independent 128-bit lanes. The calculated results are
207
+ /// stored in \a dst.
208
+ /// \headerfile <immintrin.h>
209
+ ///
210
+ /// \code
211
+ /// __m256i _mm256_sm4rnds4_epi32(__m256i __A, __m256i __B)
212
+ /// \endcode
213
+ ///
214
+ /// This intrinsic corresponds to the \c VSM4RNDS4 instruction.
215
+ ///
216
+ /// \param __A
217
+ /// A 256-bit vector of [8 x int].
218
+ /// \param __B
219
+ /// A 256-bit vector of [8 x int].
220
+ /// \returns
221
+ /// A 256-bit vector of [8 x int].
222
+ ///
223
+ /// \code{.operation}
224
+ /// DEFINE ROL32(dword, n) {
225
+ /// count := n % 32
226
+ /// dest := (dword << count) | (dword >> (32-count))
227
+ /// RETURN dest
228
+ /// }
229
+ /// DEFINE lower_t(dword) {
230
+ /// tmp.byte[0] := SBOX_BYTE(dword, 0)
231
+ /// tmp.byte[1] := SBOX_BYTE(dword, 1)
232
+ /// tmp.byte[2] := SBOX_BYTE(dword, 2)
233
+ /// tmp.byte[3] := SBOX_BYTE(dword, 3)
234
+ /// RETURN tmp
235
+ /// }
236
+ /// DEFINE L_RND(dword) {
237
+ /// tmp := dword
238
+ /// tmp := tmp ^ ROL32(dword, 2)
239
+ /// tmp := tmp ^ ROL32(dword, 10)
240
+ /// tmp := tmp ^ ROL32(dword, 18)
241
+ /// tmp := tmp ^ ROL32(dword, 24)
242
+ /// RETURN tmp
243
+ /// }
244
+ /// DEFINE T_RND(dword) {
245
+ /// RETURN L_RND(lower_t(dword))
246
+ /// }
247
+ /// DEFINE F_RND(X0, X1, X2, X3, round_key) {
248
+ /// RETURN X0 ^ T_RND(X1 ^ X2 ^ X3 ^ round_key)
249
+ /// }
250
+ /// FOR i:= 0 to 0
251
+ /// P[0] := __B.xmm[i].dword[0]
252
+ /// P[1] := __B.xmm[i].dword[1]
253
+ /// P[2] := __B.xmm[i].dword[2]
254
+ /// P[3] := __B.xmm[i].dword[3]
255
+ /// C[0] := F_RND(P[0], P[1], P[2], P[3], __A.xmm[i].dword[0])
256
+ /// C[1] := F_RND(P[1], P[2], P[3], C[0], __A.xmm[i].dword[1])
257
+ /// C[2] := F_RND(P[2], P[3], C[0], C[1], __A.xmm[i].dword[2])
258
+ /// C[3] := F_RND(P[3], C[0], C[1], C[2], __A.xmm[i].dword[3])
259
+ /// DEST.xmm[i].dword[0] := C[0]
260
+ /// DEST.xmm[i].dword[1] := C[1]
261
+ /// DEST.xmm[i].dword[2] := C[2]
262
+ /// DEST.xmm[i].dword[3] := C[3]
263
+ /// ENDFOR
264
+ /// DEST[MAX:256] := 0
265
+ /// \endcode
266
+ #define _mm256_sm4rnds4_epi32(A, B) \
267
+ (__m256i) __builtin_ia32_vsm4rnds4256((__v8su)A, (__v8su)B)
268
+
269
+ #endif // __SM4INTRIN_H
@@ -10,6 +10,10 @@
10
10
  #ifndef __STDALIGN_H
11
11
  #define __STDALIGN_H
12
12
 
13
+ /* FIXME: This is using the placeholder dates Clang produces for these macros
14
+ in C2x mode; switch to the correct values once they've been published. */
15
+ #if defined(__cplusplus) || \
16
+ (defined(__STDC_VERSION__) && __STDC_VERSION__ < 202000L)
13
17
  #ifndef __cplusplus
14
18
  #define alignas _Alignas
15
19
  #define alignof _Alignof
@@ -17,5 +21,6 @@
17
21
 
18
22
  #define __alignas_is_defined 1
19
23
  #define __alignof_is_defined 1
24
+ #endif /* __STDC_VERSION__ */
20
25
 
21
26
  #endif /* __STDALIGN_H */
@@ -45,9 +45,16 @@ extern "C" {
45
45
  #define ATOMIC_POINTER_LOCK_FREE __CLANG_ATOMIC_POINTER_LOCK_FREE
46
46
 
47
47
  /* 7.17.2 Initialization */
48
-
48
+ /* FIXME: This is using the placeholder dates Clang produces for these macros
49
+ in C2x mode; switch to the correct values once they've been published. */
50
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ < 202000L) || \
51
+ defined(__cplusplus)
52
+ /* ATOMIC_VAR_INIT was removed in C2x, but still remains in C++23. */
49
53
  #define ATOMIC_VAR_INIT(value) (value)
50
- #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201710L) || \
54
+ #endif
55
+
56
+ #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201710L && \
57
+ __STDC_VERSION__ < 202000L) || \
51
58
  (defined(__cplusplus) && __cplusplus >= 202002L)) && \
52
59
  !defined(_CLANG_DISABLE_CRT_DEPRECATION_WARNINGS)
53
60
  /* ATOMIC_VAR_INIT was deprecated in C17 and C++20. */
@@ -103,6 +103,11 @@ using ::std::nullptr_t;
103
103
  typedef typeof(nullptr) nullptr_t;
104
104
  #endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L */
105
105
 
106
+ #if defined(__need_STDDEF_H_misc) && defined(__STDC_VERSION__) && \
107
+ __STDC_VERSION__ >= 202000L
108
+ #define unreachable() __builtin_unreachable()
109
+ #endif /* defined(__need_STDDEF_H_misc) && >= C23 */
110
+
106
111
  #if defined(__need_STDDEF_H_misc)
107
112
  #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
108
113
  (defined(__cplusplus) && __cplusplus >= 201103L)
@@ -961,17 +961,17 @@ static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_popcnt(v128_t __a) {
961
961
 
962
962
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_shl(v128_t __a,
963
963
  uint32_t __b) {
964
- return (v128_t)((__i8x16)__a << __b);
964
+ return (v128_t)((__i8x16)__a << (__b & 0x7));
965
965
  }
966
966
 
967
967
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_shr(v128_t __a,
968
968
  uint32_t __b) {
969
- return (v128_t)((__i8x16)__a >> __b);
969
+ return (v128_t)((__i8x16)__a >> (__b & 0x7));
970
970
  }
971
971
 
972
972
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u8x16_shr(v128_t __a,
973
973
  uint32_t __b) {
974
- return (v128_t)((__u8x16)__a >> __b);
974
+ return (v128_t)((__u8x16)__a >> (__b & 0x7));
975
975
  }
976
976
 
977
977
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_add(v128_t __a,
@@ -1047,17 +1047,17 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i16x8_bitmask(v128_t __a) {
1047
1047
 
1048
1048
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i16x8_shl(v128_t __a,
1049
1049
  uint32_t __b) {
1050
- return (v128_t)((__i16x8)__a << __b);
1050
+ return (v128_t)((__i16x8)__a << (__b & 0xF));
1051
1051
  }
1052
1052
 
1053
1053
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i16x8_shr(v128_t __a,
1054
1054
  uint32_t __b) {
1055
- return (v128_t)((__i16x8)__a >> __b);
1055
+ return (v128_t)((__i16x8)__a >> (__b & 0xF));
1056
1056
  }
1057
1057
 
1058
1058
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u16x8_shr(v128_t __a,
1059
1059
  uint32_t __b) {
1060
- return (v128_t)((__u16x8)__a >> __b);
1060
+ return (v128_t)((__u16x8)__a >> (__b & 0xF));
1061
1061
  }
1062
1062
 
1063
1063
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i16x8_add(v128_t __a,
@@ -1138,17 +1138,17 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i32x4_bitmask(v128_t __a) {
1138
1138
 
1139
1139
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i32x4_shl(v128_t __a,
1140
1140
  uint32_t __b) {
1141
- return (v128_t)((__i32x4)__a << __b);
1141
+ return (v128_t)((__i32x4)__a << (__b & 0x1F));
1142
1142
  }
1143
1143
 
1144
1144
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i32x4_shr(v128_t __a,
1145
1145
  uint32_t __b) {
1146
- return (v128_t)((__i32x4)__a >> __b);
1146
+ return (v128_t)((__i32x4)__a >> (__b & 0x1F));
1147
1147
  }
1148
1148
 
1149
1149
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u32x4_shr(v128_t __a,
1150
1150
  uint32_t __b) {
1151
- return (v128_t)((__u32x4)__a >> __b);
1151
+ return (v128_t)((__u32x4)__a >> (__b & 0x1F));
1152
1152
  }
1153
1153
 
1154
1154
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i32x4_add(v128_t __a,
@@ -1209,17 +1209,17 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i64x2_bitmask(v128_t __a) {
1209
1209
 
1210
1210
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i64x2_shl(v128_t __a,
1211
1211
  uint32_t __b) {
1212
- return (v128_t)((__i64x2)__a << (int64_t)__b);
1212
+ return (v128_t)((__i64x2)__a << ((int64_t)__b & 0x3F));
1213
1213
  }
1214
1214
 
1215
1215
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i64x2_shr(v128_t __a,
1216
1216
  uint32_t __b) {
1217
- return (v128_t)((__i64x2)__a >> (int64_t)__b);
1217
+ return (v128_t)((__i64x2)__a >> ((int64_t)__b & 0x3F));
1218
1218
  }
1219
1219
 
1220
1220
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u64x2_shr(v128_t __a,
1221
1221
  uint32_t __b) {
1222
- return (v128_t)((__u64x2)__a >> (int64_t)__b);
1222
+ return (v128_t)((__u64x2)__a >> ((int64_t)__b & 0x3F));
1223
1223
  }
1224
1224
 
1225
1225
  static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i64x2_add(v128_t __a,
@@ -1760,6 +1760,126 @@ wasm_u64x2_load_32x2(const void *__mem) {
1760
1760
  __DEPRECATED_WASM_MACRO("wasm_v64x2_shuffle", "wasm_i64x2_shuffle") \
1761
1761
  wasm_i64x2_shuffle(__a, __b, __c0, __c1)
1762
1762
 
1763
+ // Relaxed SIMD intrinsics
1764
+
1765
+ #define __RELAXED_FN_ATTRS \
1766
+ __attribute__((__always_inline__, __nodebug__, __target__("relaxed-simd"), \
1767
+ __min_vector_width__(128)))
1768
+
1769
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1770
+ wasm_f32x4_relaxed_madd(v128_t __a, v128_t __b, v128_t __c) {
1771
+ return (v128_t)__builtin_wasm_relaxed_madd_f32x4((__f32x4)__a, (__f32x4)__b,
1772
+ (__f32x4)__c);
1773
+ }
1774
+
1775
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1776
+ wasm_f32x4_relaxed_nmadd(v128_t __a, v128_t __b, v128_t __c) {
1777
+ return (v128_t)__builtin_wasm_relaxed_nmadd_f32x4((__f32x4)__a, (__f32x4)__b,
1778
+ (__f32x4)__c);
1779
+ }
1780
+
1781
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1782
+ wasm_f64x2_relaxed_madd(v128_t __a, v128_t __b, v128_t __c) {
1783
+ return (v128_t)__builtin_wasm_relaxed_madd_f64x2((__f64x2)__a, (__f64x2)__b,
1784
+ (__f64x2)__c);
1785
+ }
1786
+
1787
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1788
+ wasm_f64x2_relaxed_nmadd(v128_t __a, v128_t __b, v128_t __c) {
1789
+ return (v128_t)__builtin_wasm_relaxed_nmadd_f64x2((__f64x2)__a, (__f64x2)__b,
1790
+ (__f64x2)__c);
1791
+ }
1792
+
1793
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1794
+ wasm_i8x16_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
1795
+ return (v128_t)__builtin_wasm_relaxed_laneselect_i8x16(
1796
+ (__i8x16)__a, (__i8x16)__b, (__i8x16)__m);
1797
+ }
1798
+
1799
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1800
+ wasm_i16x8_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
1801
+ return (v128_t)__builtin_wasm_relaxed_laneselect_i16x8(
1802
+ (__i16x8)__a, (__i16x8)__b, (__i16x8)__m);
1803
+ }
1804
+
1805
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1806
+ wasm_i32x4_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
1807
+ return (v128_t)__builtin_wasm_relaxed_laneselect_i32x4(
1808
+ (__i32x4)__a, (__i32x4)__b, (__i32x4)__m);
1809
+ }
1810
+
1811
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1812
+ wasm_i64x2_relaxed_laneselect(v128_t __a, v128_t __b, v128_t __m) {
1813
+ return (v128_t)__builtin_wasm_relaxed_laneselect_i64x2(
1814
+ (__i64x2)__a, (__i64x2)__b, (__i64x2)__m);
1815
+ }
1816
+
1817
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1818
+ wasm_i8x16_relaxed_swizzle(v128_t __a, v128_t __s) {
1819
+ return (v128_t)__builtin_wasm_relaxed_swizzle_i8x16((__i8x16)__a,
1820
+ (__i8x16)__s);
1821
+ }
1822
+
1823
+ static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f32x4_relaxed_min(v128_t __a,
1824
+ v128_t __b) {
1825
+ return (v128_t)__builtin_wasm_relaxed_min_f32x4((__f32x4)__a, (__f32x4)__b);
1826
+ }
1827
+
1828
+ static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f32x4_relaxed_max(v128_t __a,
1829
+ v128_t __b) {
1830
+ return (v128_t)__builtin_wasm_relaxed_max_f32x4((__f32x4)__a, (__f32x4)__b);
1831
+ }
1832
+
1833
+ static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f64x2_relaxed_min(v128_t __a,
1834
+ v128_t __b) {
1835
+ return (v128_t)__builtin_wasm_relaxed_min_f64x2((__f64x2)__a, (__f64x2)__b);
1836
+ }
1837
+
1838
+ static __inline__ v128_t __RELAXED_FN_ATTRS wasm_f64x2_relaxed_max(v128_t __a,
1839
+ v128_t __b) {
1840
+ return (v128_t)__builtin_wasm_relaxed_max_f64x2((__f64x2)__a, (__f64x2)__b);
1841
+ }
1842
+
1843
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1844
+ wasm_i32x4_relaxed_trunc_f32x4(v128_t __a) {
1845
+ return (v128_t)__builtin_wasm_relaxed_trunc_s_i32x4_f32x4((__f32x4)__a);
1846
+ }
1847
+
1848
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1849
+ wasm_u32x4_relaxed_trunc_f32x4(v128_t __a) {
1850
+ return (v128_t)__builtin_wasm_relaxed_trunc_u_i32x4_f32x4((__f32x4)__a);
1851
+ }
1852
+
1853
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1854
+ wasm_i32x4_relaxed_trunc_f64x2_zero(v128_t __a) {
1855
+ return (v128_t)__builtin_wasm_relaxed_trunc_s_zero_i32x4_f64x2((__f64x2)__a);
1856
+ }
1857
+
1858
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1859
+ wasm_u32x4_relaxed_trunc_f64x2_zero(v128_t __a) {
1860
+ return (v128_t)__builtin_wasm_relaxed_trunc_u_zero_i32x4_f64x2((__f64x2)__a);
1861
+ }
1862
+
1863
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1864
+ wasm_i16x8_relaxed_q15mulr(v128_t __a, v128_t __b) {
1865
+ return (v128_t)__builtin_wasm_relaxed_q15mulr_s_i16x8((__i16x8)__a,
1866
+ (__i16x8)__b);
1867
+ }
1868
+
1869
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1870
+ wasm_i16x8_relaxed_dot_i8x16_i7x16(v128_t __a, v128_t __b) {
1871
+ return (v128_t)__builtin_wasm_relaxed_dot_i8x16_i7x16_s_i16x8((__i8x16)__a,
1872
+ (__i8x16)__b);
1873
+ }
1874
+
1875
+ static __inline__ v128_t __RELAXED_FN_ATTRS
1876
+ wasm_i32x4_relaxed_dot_i8x16_i7x16_add(v128_t __a, v128_t __b, v128_t __c) {
1877
+ return (v128_t)__builtin_wasm_relaxed_dot_i8x16_i7x16_add_s_i32x4(
1878
+ (__i8x16)__a, (__i8x16)__b, (__i32x4)__c);
1879
+ }
1880
+
1881
+ // Deprecated intrinsics
1882
+
1763
1883
  static __inline__ v128_t __DEPRECATED_FN_ATTRS("wasm_i8x16_swizzle")
1764
1884
  wasm_v8x16_swizzle(v128_t __a, v128_t __b) {
1765
1885
  return wasm_i8x16_swizzle(__a, __b);
@@ -0,0 +1,84 @@
1
+ /*===---- xsavecintrin.h - XSAVEC intrinsic --------------------------------===
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 <xsavecintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __XSAVECINTRIN_H
15
+ #define __XSAVECINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("xsavec")))
19
+
20
+ /// Performs a full or partial save of processor state to the memory at
21
+ /// \a __p. The exact state saved depends on the 64-bit mask \a __m and
22
+ /// processor control register \c XCR0.
23
+ ///
24
+ /// \code{.operation}
25
+ /// mask[62:0] := __m[62:0] AND XCR0[62:0]
26
+ /// FOR i := 0 TO 62
27
+ /// IF mask[i] == 1
28
+ /// CASE (i) OF
29
+ /// 0: save X87 FPU state
30
+ /// 1: save SSE state
31
+ /// DEFAULT: __p.Ext_Save_Area[i] := ProcessorState[i]
32
+ /// FI
33
+ /// ENDFOR
34
+ /// __p.Header.XSTATE_BV[62:0] := INIT_FUNCTION(mask[62:0])
35
+ /// \endcode
36
+ ///
37
+ /// \headerfile <immintrin.h>
38
+ ///
39
+ /// This intrinsic corresponds to the \c XSAVEC instruction.
40
+ ///
41
+ /// \param __p
42
+ /// Pointer to the save area; must be 64-byte aligned.
43
+ /// \param __m
44
+ /// A 64-bit mask indicating what state should be saved.
45
+ static __inline__ void __DEFAULT_FN_ATTRS
46
+ _xsavec(void *__p, unsigned long long __m) {
47
+ __builtin_ia32_xsavec(__p, __m);
48
+ }
49
+
50
+ #ifdef __x86_64__
51
+ /// Performs a full or partial save of processor state to the memory at
52
+ /// \a __p. The exact state saved depends on the 64-bit mask \a __m and
53
+ /// processor control register \c XCR0.
54
+ ///
55
+ /// \code{.operation}
56
+ /// mask[62:0] := __m[62:0] AND XCR0[62:0]
57
+ /// FOR i := 0 TO 62
58
+ /// IF mask[i] == 1
59
+ /// CASE (i) OF
60
+ /// 0: save X87 FPU state
61
+ /// 1: save SSE state
62
+ /// DEFAULT: __p.Ext_Save_Area[i] := ProcessorState[i]
63
+ /// FI
64
+ /// ENDFOR
65
+ /// __p.Header.XSTATE_BV[62:0] := INIT_FUNCTION(mask[62:0])
66
+ /// \endcode
67
+ ///
68
+ /// \headerfile <immintrin.h>
69
+ ///
70
+ /// This intrinsic corresponds to the \c XSAVEC64 instruction.
71
+ ///
72
+ /// \param __p
73
+ /// Pointer to the save area; must be 64-byte aligned.
74
+ /// \param __m
75
+ /// A 64-bit mask indicating what state should be saved.
76
+ static __inline__ void __DEFAULT_FN_ATTRS
77
+ _xsavec64(void *__p, unsigned long long __m) {
78
+ __builtin_ia32_xsavec64(__p, __m);
79
+ }
80
+ #endif
81
+
82
+ #undef __DEFAULT_FN_ATTRS
83
+
84
+ #endif
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cpp-linter/clang-tidy-linux-arm64",
3
- "version": "16.0.3",
4
- "description": "The Linux arm64 binary for @cpp-linter/clang-tidy (LLVM 16.0.3).",
3
+ "version": "17.0.6",
4
+ "description": "The Linux arm64 binary for @cpp-linter/clang-tidy (LLVM 17.0.6).",
5
5
  "license": "Apache-2.0 WITH LLVM-exception",
6
6
  "repository": {
7
7
  "type": "git",
@@ -24,9 +24,9 @@
24
24
  "lib"
25
25
  ],
26
26
  "staticBinary": {
27
- "release": "llvm-16.0.3-2",
28
- "file": "clang-tidy-16_linux-arm64",
29
- "url": "https://github.com/cpp-linter/clang-tools-static-binaries/releases/download/llvm-16.0.3-2/clang-tidy-16_linux-arm64",
30
- "sha512": "f79dc9fbe590c510ae5ca1f359664b1d5f0c030f1f267fe913a4ce437be8377f2959ee9f39bc76cb4703679e6c4e7c24b4ebe3f0a314cf7ff024aa0d4efa7ef3"
27
+ "release": "llvm-17.0.6-2",
28
+ "file": "clang-tidy-17_linux-arm64",
29
+ "url": "https://github.com/cpp-linter/clang-tools-static-binaries/releases/download/llvm-17.0.6-2/clang-tidy-17_linux-arm64",
30
+ "sha512": "ecd29c66aee870804b2c4d73a9dc8e3f1d5ffb208f86f057f5a58c2981f2e53e302b4462fc1bbab2603d4657146a92cd120a1240f41533c7d4e94a0d1064f858"
31
31
  }
32
32
  }