@cpp-linter/clang-tidy-win32-x64 12.0.1

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 (164) hide show
  1. package/LICENSE.TXT +279 -0
  2. package/README.md +7 -0
  3. package/bin/clang-tidy.exe +4 -0
  4. package/lib/clang/12.0.1/include/__clang_cuda_builtin_vars.h +121 -0
  5. package/lib/clang/12.0.1/include/__clang_cuda_cmath.h +512 -0
  6. package/lib/clang/12.0.1/include/__clang_cuda_complex_builtins.h +285 -0
  7. package/lib/clang/12.0.1/include/__clang_cuda_device_functions.h +1486 -0
  8. package/lib/clang/12.0.1/include/__clang_cuda_intrinsics.h +486 -0
  9. package/lib/clang/12.0.1/include/__clang_cuda_libdevice_declares.h +462 -0
  10. package/lib/clang/12.0.1/include/__clang_cuda_math.h +348 -0
  11. package/lib/clang/12.0.1/include/__clang_cuda_math_forward_declares.h +284 -0
  12. package/lib/clang/12.0.1/include/__clang_cuda_runtime_wrapper.h +443 -0
  13. package/lib/clang/12.0.1/include/__clang_hip_cmath.h +664 -0
  14. package/lib/clang/12.0.1/include/__clang_hip_libdevice_declares.h +334 -0
  15. package/lib/clang/12.0.1/include/__clang_hip_math.h +1275 -0
  16. package/lib/clang/12.0.1/include/__clang_hip_runtime_wrapper.h +69 -0
  17. package/lib/clang/12.0.1/include/__stddef_max_align_t.h +27 -0
  18. package/lib/clang/12.0.1/include/__wmmintrin_aes.h +140 -0
  19. package/lib/clang/12.0.1/include/__wmmintrin_pclmul.h +48 -0
  20. package/lib/clang/12.0.1/include/adxintrin.h +72 -0
  21. package/lib/clang/12.0.1/include/altivec.h +18239 -0
  22. package/lib/clang/12.0.1/include/ammintrin.h +179 -0
  23. package/lib/clang/12.0.1/include/amxintrin.h +278 -0
  24. package/lib/clang/12.0.1/include/arm64intr.h +35 -0
  25. package/lib/clang/12.0.1/include/arm_acle.h +716 -0
  26. package/lib/clang/12.0.1/include/arm_bf16.h +20 -0
  27. package/lib/clang/12.0.1/include/arm_cde.h +410 -0
  28. package/lib/clang/12.0.1/include/arm_cmse.h +217 -0
  29. package/lib/clang/12.0.1/include/arm_fp16.h +596 -0
  30. package/lib/clang/12.0.1/include/arm_mve.h +19187 -0
  31. package/lib/clang/12.0.1/include/arm_neon.h +68982 -0
  32. package/lib/clang/12.0.1/include/arm_sve.h +18148 -0
  33. package/lib/clang/12.0.1/include/armintr.h +31 -0
  34. package/lib/clang/12.0.1/include/avx2intrin.h +1148 -0
  35. package/lib/clang/12.0.1/include/avx512bf16intrin.h +279 -0
  36. package/lib/clang/12.0.1/include/avx512bitalgintrin.h +83 -0
  37. package/lib/clang/12.0.1/include/avx512bwintrin.h +2024 -0
  38. package/lib/clang/12.0.1/include/avx512cdintrin.h +123 -0
  39. package/lib/clang/12.0.1/include/avx512dqintrin.h +1377 -0
  40. package/lib/clang/12.0.1/include/avx512erintrin.h +271 -0
  41. package/lib/clang/12.0.1/include/avx512fintrin.h +9618 -0
  42. package/lib/clang/12.0.1/include/avx512ifmaintrin.h +68 -0
  43. package/lib/clang/12.0.1/include/avx512ifmavlintrin.h +119 -0
  44. package/lib/clang/12.0.1/include/avx512pfintrin.h +97 -0
  45. package/lib/clang/12.0.1/include/avx512vbmi2intrin.h +357 -0
  46. package/lib/clang/12.0.1/include/avx512vbmiintrin.h +105 -0
  47. package/lib/clang/12.0.1/include/avx512vbmivlintrin.h +188 -0
  48. package/lib/clang/12.0.1/include/avx512vlbf16intrin.h +474 -0
  49. package/lib/clang/12.0.1/include/avx512vlbitalgintrin.h +145 -0
  50. package/lib/clang/12.0.1/include/avx512vlbwintrin.h +2809 -0
  51. package/lib/clang/12.0.1/include/avx512vlcdintrin.h +225 -0
  52. package/lib/clang/12.0.1/include/avx512vldqintrin.h +1167 -0
  53. package/lib/clang/12.0.1/include/avx512vlintrin.h +8445 -0
  54. package/lib/clang/12.0.1/include/avx512vlvbmi2intrin.h +689 -0
  55. package/lib/clang/12.0.1/include/avx512vlvnniintrin.h +304 -0
  56. package/lib/clang/12.0.1/include/avx512vlvp2intersectintrin.h +121 -0
  57. package/lib/clang/12.0.1/include/avx512vnniintrin.h +115 -0
  58. package/lib/clang/12.0.1/include/avx512vp2intersectintrin.h +77 -0
  59. package/lib/clang/12.0.1/include/avx512vpopcntdqintrin.h +54 -0
  60. package/lib/clang/12.0.1/include/avx512vpopcntdqvlintrin.h +91 -0
  61. package/lib/clang/12.0.1/include/avxintrin.h +5053 -0
  62. package/lib/clang/12.0.1/include/avxvnniintrin.h +225 -0
  63. package/lib/clang/12.0.1/include/bmi2intrin.h +81 -0
  64. package/lib/clang/12.0.1/include/bmiintrin.h +427 -0
  65. package/lib/clang/12.0.1/include/cet.h +66 -0
  66. package/lib/clang/12.0.1/include/cetintrin.h +99 -0
  67. package/lib/clang/12.0.1/include/cldemoteintrin.h +36 -0
  68. package/lib/clang/12.0.1/include/clflushoptintrin.h +27 -0
  69. package/lib/clang/12.0.1/include/clwbintrin.h +38 -0
  70. package/lib/clang/12.0.1/include/clzerointrin.h +36 -0
  71. package/lib/clang/12.0.1/include/cpuid.h +319 -0
  72. package/lib/clang/12.0.1/include/cuda_wrappers/algorithm +116 -0
  73. package/lib/clang/12.0.1/include/cuda_wrappers/complex +82 -0
  74. package/lib/clang/12.0.1/include/cuda_wrappers/new +106 -0
  75. package/lib/clang/12.0.1/include/emmintrin.h +4981 -0
  76. package/lib/clang/12.0.1/include/enqcmdintrin.h +63 -0
  77. package/lib/clang/12.0.1/include/f16cintrin.h +162 -0
  78. package/lib/clang/12.0.1/include/float.h +152 -0
  79. package/lib/clang/12.0.1/include/fma4intrin.h +218 -0
  80. package/lib/clang/12.0.1/include/fmaintrin.h +216 -0
  81. package/lib/clang/12.0.1/include/fxsrintrin.h +91 -0
  82. package/lib/clang/12.0.1/include/gfniintrin.h +193 -0
  83. package/lib/clang/12.0.1/include/hresetintrin.h +49 -0
  84. package/lib/clang/12.0.1/include/htmintrin.h +212 -0
  85. package/lib/clang/12.0.1/include/htmxlintrin.h +345 -0
  86. package/lib/clang/12.0.1/include/ia32intrin.h +441 -0
  87. package/lib/clang/12.0.1/include/immintrin.h +600 -0
  88. package/lib/clang/12.0.1/include/intrin.h +585 -0
  89. package/lib/clang/12.0.1/include/inttypes.h +97 -0
  90. package/lib/clang/12.0.1/include/invpcidintrin.h +23 -0
  91. package/lib/clang/12.0.1/include/iso646.h +27 -0
  92. package/lib/clang/12.0.1/include/keylockerintrin.h +506 -0
  93. package/lib/clang/12.0.1/include/limits.h +102 -0
  94. package/lib/clang/12.0.1/include/lwpintrin.h +136 -0
  95. package/lib/clang/12.0.1/include/lzcntintrin.h +104 -0
  96. package/lib/clang/12.0.1/include/mm3dnow.h +157 -0
  97. package/lib/clang/12.0.1/include/mm_malloc.h +67 -0
  98. package/lib/clang/12.0.1/include/mmintrin.h +1558 -0
  99. package/lib/clang/12.0.1/include/module.modulemap +164 -0
  100. package/lib/clang/12.0.1/include/movdirintrin.h +49 -0
  101. package/lib/clang/12.0.1/include/msa.h +573 -0
  102. package/lib/clang/12.0.1/include/mwaitxintrin.h +33 -0
  103. package/lib/clang/12.0.1/include/nmmintrin.h +16 -0
  104. package/lib/clang/12.0.1/include/opencl-c-base.h +589 -0
  105. package/lib/clang/12.0.1/include/opencl-c.h +17162 -0
  106. package/lib/clang/12.0.1/include/openmp_wrappers/__clang_openmp_device_functions.h +42 -0
  107. package/lib/clang/12.0.1/include/openmp_wrappers/cmath +78 -0
  108. package/lib/clang/12.0.1/include/openmp_wrappers/complex +52 -0
  109. package/lib/clang/12.0.1/include/openmp_wrappers/complex.h +27 -0
  110. package/lib/clang/12.0.1/include/openmp_wrappers/complex_cmath.h +388 -0
  111. package/lib/clang/12.0.1/include/openmp_wrappers/math.h +51 -0
  112. package/lib/clang/12.0.1/include/openmp_wrappers/new +70 -0
  113. package/lib/clang/12.0.1/include/pconfigintrin.h +40 -0
  114. package/lib/clang/12.0.1/include/pkuintrin.h +34 -0
  115. package/lib/clang/12.0.1/include/pmmintrin.h +290 -0
  116. package/lib/clang/12.0.1/include/popcntintrin.h +59 -0
  117. package/lib/clang/12.0.1/include/ppc_wrappers/emmintrin.h +2324 -0
  118. package/lib/clang/12.0.1/include/ppc_wrappers/mm_malloc.h +50 -0
  119. package/lib/clang/12.0.1/include/ppc_wrappers/mmintrin.h +1450 -0
  120. package/lib/clang/12.0.1/include/ppc_wrappers/pmmintrin.h +150 -0
  121. package/lib/clang/12.0.1/include/ppc_wrappers/smmintrin.h +109 -0
  122. package/lib/clang/12.0.1/include/ppc_wrappers/tmmintrin.h +495 -0
  123. package/lib/clang/12.0.1/include/ppc_wrappers/xmmintrin.h +1843 -0
  124. package/lib/clang/12.0.1/include/prfchwintrin.h +55 -0
  125. package/lib/clang/12.0.1/include/ptwriteintrin.h +37 -0
  126. package/lib/clang/12.0.1/include/rdseedintrin.h +42 -0
  127. package/lib/clang/12.0.1/include/rtmintrin.h +45 -0
  128. package/lib/clang/12.0.1/include/s390intrin.h +25 -0
  129. package/lib/clang/12.0.1/include/serializeintrin.h +30 -0
  130. package/lib/clang/12.0.1/include/sgxintrin.h +60 -0
  131. package/lib/clang/12.0.1/include/shaintrin.h +61 -0
  132. package/lib/clang/12.0.1/include/smmintrin.h +2430 -0
  133. package/lib/clang/12.0.1/include/stdalign.h +21 -0
  134. package/lib/clang/12.0.1/include/stdarg.h +35 -0
  135. package/lib/clang/12.0.1/include/stdatomic.h +176 -0
  136. package/lib/clang/12.0.1/include/stdbool.h +31 -0
  137. package/lib/clang/12.0.1/include/stddef.h +121 -0
  138. package/lib/clang/12.0.1/include/stdint.h +693 -0
  139. package/lib/clang/12.0.1/include/stdnoreturn.h +16 -0
  140. package/lib/clang/12.0.1/include/tbmintrin.h +140 -0
  141. package/lib/clang/12.0.1/include/tgmath.h +1368 -0
  142. package/lib/clang/12.0.1/include/tmmintrin.h +771 -0
  143. package/lib/clang/12.0.1/include/tsxldtrkintrin.h +56 -0
  144. package/lib/clang/12.0.1/include/uintrintrin.h +150 -0
  145. package/lib/clang/12.0.1/include/unwind.h +327 -0
  146. package/lib/clang/12.0.1/include/vadefs.h +51 -0
  147. package/lib/clang/12.0.1/include/vaesintrin.h +84 -0
  148. package/lib/clang/12.0.1/include/varargs.h +12 -0
  149. package/lib/clang/12.0.1/include/vecintrin.h +10998 -0
  150. package/lib/clang/12.0.1/include/vpclmulqdqintrin.h +28 -0
  151. package/lib/clang/12.0.1/include/waitpkgintrin.h +42 -0
  152. package/lib/clang/12.0.1/include/wasm_simd128.h +1167 -0
  153. package/lib/clang/12.0.1/include/wbnoinvdintrin.h +24 -0
  154. package/lib/clang/12.0.1/include/wmmintrin.h +19 -0
  155. package/lib/clang/12.0.1/include/x86gprintrin.h +23 -0
  156. package/lib/clang/12.0.1/include/x86intrin.h +63 -0
  157. package/lib/clang/12.0.1/include/xmmintrin.h +3008 -0
  158. package/lib/clang/12.0.1/include/xopintrin.h +770 -0
  159. package/lib/clang/12.0.1/include/xsavecintrin.h +34 -0
  160. package/lib/clang/12.0.1/include/xsaveintrin.h +63 -0
  161. package/lib/clang/12.0.1/include/xsaveoptintrin.h +34 -0
  162. package/lib/clang/12.0.1/include/xsavesintrin.h +44 -0
  163. package/lib/clang/12.0.1/include/xtestintrin.h +27 -0
  164. package/package.json +32 -0
@@ -0,0 +1,600 @@
1
+ /*===---- immintrin.h - Intel 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
+ #define __IMMINTRIN_H
12
+
13
+ #include <x86gprintrin.h>
14
+
15
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
16
+ defined(__MMX__)
17
+ #include <mmintrin.h>
18
+ #endif
19
+
20
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
21
+ defined(__SSE__)
22
+ #include <xmmintrin.h>
23
+ #endif
24
+
25
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
26
+ defined(__SSE2__)
27
+ #include <emmintrin.h>
28
+ #endif
29
+
30
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
31
+ defined(__SSE3__)
32
+ #include <pmmintrin.h>
33
+ #endif
34
+
35
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
36
+ defined(__SSSE3__)
37
+ #include <tmmintrin.h>
38
+ #endif
39
+
40
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
41
+ (defined(__SSE4_2__) || defined(__SSE4_1__))
42
+ #include <smmintrin.h>
43
+ #endif
44
+
45
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
46
+ (defined(__AES__) || defined(__PCLMUL__))
47
+ #include <wmmintrin.h>
48
+ #endif
49
+
50
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
51
+ defined(__CLFLUSHOPT__)
52
+ #include <clflushoptintrin.h>
53
+ #endif
54
+
55
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
56
+ defined(__CLWB__)
57
+ #include <clwbintrin.h>
58
+ #endif
59
+
60
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
61
+ defined(__AVX__)
62
+ #include <avxintrin.h>
63
+ #endif
64
+
65
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
66
+ defined(__AVX2__)
67
+ #include <avx2intrin.h>
68
+ #endif
69
+
70
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
71
+ defined(__F16C__)
72
+ #include <f16cintrin.h>
73
+ #endif
74
+
75
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
76
+ defined(__VPCLMULQDQ__)
77
+ #include <vpclmulqdqintrin.h>
78
+ #endif
79
+
80
+ /* No feature check desired due to internal checks */
81
+ #include <bmiintrin.h>
82
+
83
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
84
+ defined(__BMI2__)
85
+ #include <bmi2intrin.h>
86
+ #endif
87
+
88
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
89
+ defined(__LZCNT__)
90
+ #include <lzcntintrin.h>
91
+ #endif
92
+
93
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
94
+ defined(__POPCNT__)
95
+ #include <popcntintrin.h>
96
+ #endif
97
+
98
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
99
+ defined(__FMA__)
100
+ #include <fmaintrin.h>
101
+ #endif
102
+
103
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
104
+ defined(__AVX512F__)
105
+ #include <avx512fintrin.h>
106
+ #endif
107
+
108
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
109
+ defined(__AVX512VL__)
110
+ #include <avx512vlintrin.h>
111
+ #endif
112
+
113
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
114
+ defined(__AVX512BW__)
115
+ #include <avx512bwintrin.h>
116
+ #endif
117
+
118
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
119
+ defined(__AVX512BITALG__)
120
+ #include <avx512bitalgintrin.h>
121
+ #endif
122
+
123
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
124
+ defined(__AVX512CD__)
125
+ #include <avx512cdintrin.h>
126
+ #endif
127
+
128
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
129
+ defined(__AVX512VPOPCNTDQ__)
130
+ #include <avx512vpopcntdqintrin.h>
131
+ #endif
132
+
133
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
134
+ (defined(__AVX512VL__) && defined(__AVX512VPOPCNTDQ__))
135
+ #include <avx512vpopcntdqvlintrin.h>
136
+ #endif
137
+
138
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
139
+ defined(__AVX512VNNI__)
140
+ #include <avx512vnniintrin.h>
141
+ #endif
142
+
143
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
144
+ (defined(__AVX512VL__) && defined(__AVX512VNNI__))
145
+ #include <avx512vlvnniintrin.h>
146
+ #endif
147
+
148
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
149
+ defined(__AVXVNNI__)
150
+ #include <avxvnniintrin.h>
151
+ #endif
152
+
153
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
154
+ defined(__AVX512DQ__)
155
+ #include <avx512dqintrin.h>
156
+ #endif
157
+
158
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
159
+ (defined(__AVX512VL__) && defined(__AVX512BITALG__))
160
+ #include <avx512vlbitalgintrin.h>
161
+ #endif
162
+
163
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
164
+ (defined(__AVX512VL__) && defined(__AVX512BW__))
165
+ #include <avx512vlbwintrin.h>
166
+ #endif
167
+
168
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
169
+ (defined(__AVX512VL__) && defined(__AVX512CD__))
170
+ #include <avx512vlcdintrin.h>
171
+ #endif
172
+
173
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
174
+ (defined(__AVX512VL__) && defined(__AVX512DQ__))
175
+ #include <avx512vldqintrin.h>
176
+ #endif
177
+
178
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
179
+ defined(__AVX512ER__)
180
+ #include <avx512erintrin.h>
181
+ #endif
182
+
183
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
184
+ defined(__AVX512IFMA__)
185
+ #include <avx512ifmaintrin.h>
186
+ #endif
187
+
188
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
189
+ (defined(__AVX512IFMA__) && defined(__AVX512VL__))
190
+ #include <avx512ifmavlintrin.h>
191
+ #endif
192
+
193
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
194
+ defined(__AVX512VBMI__)
195
+ #include <avx512vbmiintrin.h>
196
+ #endif
197
+
198
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
199
+ (defined(__AVX512VBMI__) && defined(__AVX512VL__))
200
+ #include <avx512vbmivlintrin.h>
201
+ #endif
202
+
203
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
204
+ defined(__AVX512VBMI2__)
205
+ #include <avx512vbmi2intrin.h>
206
+ #endif
207
+
208
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
209
+ (defined(__AVX512VBMI2__) && defined(__AVX512VL__))
210
+ #include <avx512vlvbmi2intrin.h>
211
+ #endif
212
+
213
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
214
+ defined(__AVX512PF__)
215
+ #include <avx512pfintrin.h>
216
+ #endif
217
+
218
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
219
+ defined(__AVX512BF16__)
220
+ #include <avx512bf16intrin.h>
221
+ #endif
222
+
223
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
224
+ (defined(__AVX512VL__) && defined(__AVX512BF16__))
225
+ #include <avx512vlbf16intrin.h>
226
+ #endif
227
+
228
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
229
+ defined(__PKU__)
230
+ #include <pkuintrin.h>
231
+ #endif
232
+
233
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
234
+ defined(__VAES__)
235
+ #include <vaesintrin.h>
236
+ #endif
237
+
238
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
239
+ defined(__GFNI__)
240
+ #include <gfniintrin.h>
241
+ #endif
242
+
243
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
244
+ defined(__RDPID__)
245
+ /// Returns the value of the IA32_TSC_AUX MSR (0xc0000103).
246
+ ///
247
+ /// \headerfile <immintrin.h>
248
+ ///
249
+ /// This intrinsic corresponds to the <c> RDPID </c> instruction.
250
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("rdpid")))
251
+ _rdpid_u32(void) {
252
+ return __builtin_ia32_rdpid();
253
+ }
254
+ #endif // __RDPID__
255
+
256
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
257
+ defined(__RDRND__)
258
+ static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
259
+ _rdrand16_step(unsigned short *__p)
260
+ {
261
+ return __builtin_ia32_rdrand16_step(__p);
262
+ }
263
+
264
+ static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
265
+ _rdrand32_step(unsigned int *__p)
266
+ {
267
+ return __builtin_ia32_rdrand32_step(__p);
268
+ }
269
+
270
+ #ifdef __x86_64__
271
+ static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
272
+ _rdrand64_step(unsigned long long *__p)
273
+ {
274
+ return __builtin_ia32_rdrand64_step(__p);
275
+ }
276
+ #endif
277
+ #endif /* __RDRND__ */
278
+
279
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
280
+ defined(__FSGSBASE__)
281
+ #ifdef __x86_64__
282
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
283
+ _readfsbase_u32(void)
284
+ {
285
+ return __builtin_ia32_rdfsbase32();
286
+ }
287
+
288
+ static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
289
+ _readfsbase_u64(void)
290
+ {
291
+ return __builtin_ia32_rdfsbase64();
292
+ }
293
+
294
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
295
+ _readgsbase_u32(void)
296
+ {
297
+ return __builtin_ia32_rdgsbase32();
298
+ }
299
+
300
+ static __inline__ unsigned long long __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
301
+ _readgsbase_u64(void)
302
+ {
303
+ return __builtin_ia32_rdgsbase64();
304
+ }
305
+
306
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
307
+ _writefsbase_u32(unsigned int __V)
308
+ {
309
+ __builtin_ia32_wrfsbase32(__V);
310
+ }
311
+
312
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
313
+ _writefsbase_u64(unsigned long long __V)
314
+ {
315
+ __builtin_ia32_wrfsbase64(__V);
316
+ }
317
+
318
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
319
+ _writegsbase_u32(unsigned int __V)
320
+ {
321
+ __builtin_ia32_wrgsbase32(__V);
322
+ }
323
+
324
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("fsgsbase")))
325
+ _writegsbase_u64(unsigned long long __V)
326
+ {
327
+ __builtin_ia32_wrgsbase64(__V);
328
+ }
329
+
330
+ #endif
331
+ #endif /* __FSGSBASE__ */
332
+
333
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
334
+ defined(__MOVBE__)
335
+
336
+ /* The structs used below are to force the load/store to be unaligned. This
337
+ * is accomplished with the __packed__ attribute. The __may_alias__ prevents
338
+ * tbaa metadata from being generated based on the struct and the type of the
339
+ * field inside of it.
340
+ */
341
+
342
+ static __inline__ short __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
343
+ _loadbe_i16(void const * __P) {
344
+ struct __loadu_i16 {
345
+ short __v;
346
+ } __attribute__((__packed__, __may_alias__));
347
+ return __builtin_bswap16(((const struct __loadu_i16*)__P)->__v);
348
+ }
349
+
350
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
351
+ _storebe_i16(void * __P, short __D) {
352
+ struct __storeu_i16 {
353
+ short __v;
354
+ } __attribute__((__packed__, __may_alias__));
355
+ ((struct __storeu_i16*)__P)->__v = __builtin_bswap16(__D);
356
+ }
357
+
358
+ static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
359
+ _loadbe_i32(void const * __P) {
360
+ struct __loadu_i32 {
361
+ int __v;
362
+ } __attribute__((__packed__, __may_alias__));
363
+ return __builtin_bswap32(((const struct __loadu_i32*)__P)->__v);
364
+ }
365
+
366
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
367
+ _storebe_i32(void * __P, int __D) {
368
+ struct __storeu_i32 {
369
+ int __v;
370
+ } __attribute__((__packed__, __may_alias__));
371
+ ((struct __storeu_i32*)__P)->__v = __builtin_bswap32(__D);
372
+ }
373
+
374
+ #ifdef __x86_64__
375
+ static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
376
+ _loadbe_i64(void const * __P) {
377
+ struct __loadu_i64 {
378
+ long long __v;
379
+ } __attribute__((__packed__, __may_alias__));
380
+ return __builtin_bswap64(((const struct __loadu_i64*)__P)->__v);
381
+ }
382
+
383
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
384
+ _storebe_i64(void * __P, long long __D) {
385
+ struct __storeu_i64 {
386
+ long long __v;
387
+ } __attribute__((__packed__, __may_alias__));
388
+ ((struct __storeu_i64*)__P)->__v = __builtin_bswap64(__D);
389
+ }
390
+ #endif
391
+ #endif /* __MOVBE */
392
+
393
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
394
+ defined(__RTM__)
395
+ #include <rtmintrin.h>
396
+ #include <xtestintrin.h>
397
+ #endif
398
+
399
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
400
+ defined(__SHA__)
401
+ #include <shaintrin.h>
402
+ #endif
403
+
404
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
405
+ defined(__FXSR__)
406
+ #include <fxsrintrin.h>
407
+ #endif
408
+
409
+ /* No feature check desired due to internal MSC_VER checks */
410
+ #include <xsaveintrin.h>
411
+
412
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
413
+ defined(__XSAVEOPT__)
414
+ #include <xsaveoptintrin.h>
415
+ #endif
416
+
417
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
418
+ defined(__XSAVEC__)
419
+ #include <xsavecintrin.h>
420
+ #endif
421
+
422
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
423
+ defined(__XSAVES__)
424
+ #include <xsavesintrin.h>
425
+ #endif
426
+
427
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
428
+ defined(__SHSTK__)
429
+ #include <cetintrin.h>
430
+ #endif
431
+
432
+ /* Some intrinsics inside adxintrin.h are available only on processors with ADX,
433
+ * whereas others are also available at all times. */
434
+ #include <adxintrin.h>
435
+
436
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
437
+ defined(__RDSEED__)
438
+ #include <rdseedintrin.h>
439
+ #endif
440
+
441
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
442
+ defined(__WBNOINVD__)
443
+ #include <wbnoinvdintrin.h>
444
+ #endif
445
+
446
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
447
+ defined(__CLDEMOTE__)
448
+ #include <cldemoteintrin.h>
449
+ #endif
450
+
451
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
452
+ defined(__WAITPKG__)
453
+ #include <waitpkgintrin.h>
454
+ #endif
455
+
456
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
457
+ defined(__MOVDIRI__) || defined(__MOVDIR64B__)
458
+ #include <movdirintrin.h>
459
+ #endif
460
+
461
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
462
+ defined(__PCONFIG__)
463
+ #include <pconfigintrin.h>
464
+ #endif
465
+
466
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
467
+ defined(__SGX__)
468
+ #include <sgxintrin.h>
469
+ #endif
470
+
471
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
472
+ defined(__PTWRITE__)
473
+ #include <ptwriteintrin.h>
474
+ #endif
475
+
476
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
477
+ defined(__INVPCID__)
478
+ #include <invpcidintrin.h>
479
+ #endif
480
+
481
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
482
+ defined(__KL__) || defined(__WIDEKL__)
483
+ #include <keylockerintrin.h>
484
+ #endif
485
+
486
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
487
+ defined(__AMXTILE__) || defined(__AMXINT8__) || defined(__AMXBF16__)
488
+ #include <amxintrin.h>
489
+ #endif
490
+
491
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
492
+ defined(__AVX512VP2INTERSECT__)
493
+ #include <avx512vp2intersectintrin.h>
494
+ #endif
495
+
496
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
497
+ (defined(__AVX512VL__) && defined(__AVX512VP2INTERSECT__))
498
+ #include <avx512vlvp2intersectintrin.h>
499
+ #endif
500
+
501
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
502
+ defined(__ENQCMD__)
503
+ #include <enqcmdintrin.h>
504
+ #endif
505
+
506
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
507
+ defined(__SERIALIZE__)
508
+ #include <serializeintrin.h>
509
+ #endif
510
+
511
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
512
+ defined(__TSXLDTRK__)
513
+ #include <tsxldtrkintrin.h>
514
+ #endif
515
+
516
+ #if defined(_MSC_VER) && __has_extension(gnu_asm)
517
+ /* Define the default attributes for these intrinsics */
518
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
519
+ #ifdef __cplusplus
520
+ extern "C" {
521
+ #endif
522
+ /*----------------------------------------------------------------------------*\
523
+ |* Interlocked Exchange HLE
524
+ \*----------------------------------------------------------------------------*/
525
+ #if defined(__i386__) || defined(__x86_64__)
526
+ static __inline__ long __DEFAULT_FN_ATTRS
527
+ _InterlockedExchange_HLEAcquire(long volatile *_Target, long _Value) {
528
+ __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
529
+ : "+r" (_Value), "+m" (*_Target) :: "memory");
530
+ return _Value;
531
+ }
532
+ static __inline__ long __DEFAULT_FN_ATTRS
533
+ _InterlockedExchange_HLERelease(long volatile *_Target, long _Value) {
534
+ __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
535
+ : "+r" (_Value), "+m" (*_Target) :: "memory");
536
+ return _Value;
537
+ }
538
+ #endif
539
+ #if defined(__x86_64__)
540
+ static __inline__ __int64 __DEFAULT_FN_ATTRS
541
+ _InterlockedExchange64_HLEAcquire(__int64 volatile *_Target, __int64 _Value) {
542
+ __asm__ __volatile__(".byte 0xf2 ; lock ; xchg %0, %1"
543
+ : "+r" (_Value), "+m" (*_Target) :: "memory");
544
+ return _Value;
545
+ }
546
+ static __inline__ __int64 __DEFAULT_FN_ATTRS
547
+ _InterlockedExchange64_HLERelease(__int64 volatile *_Target, __int64 _Value) {
548
+ __asm__ __volatile__(".byte 0xf3 ; lock ; xchg %0, %1"
549
+ : "+r" (_Value), "+m" (*_Target) :: "memory");
550
+ return _Value;
551
+ }
552
+ #endif
553
+ /*----------------------------------------------------------------------------*\
554
+ |* Interlocked Compare Exchange HLE
555
+ \*----------------------------------------------------------------------------*/
556
+ #if defined(__i386__) || defined(__x86_64__)
557
+ static __inline__ long __DEFAULT_FN_ATTRS
558
+ _InterlockedCompareExchange_HLEAcquire(long volatile *_Destination,
559
+ long _Exchange, long _Comparand) {
560
+ __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
561
+ : "+a" (_Comparand), "+m" (*_Destination)
562
+ : "r" (_Exchange) : "memory");
563
+ return _Comparand;
564
+ }
565
+ static __inline__ long __DEFAULT_FN_ATTRS
566
+ _InterlockedCompareExchange_HLERelease(long volatile *_Destination,
567
+ long _Exchange, long _Comparand) {
568
+ __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
569
+ : "+a" (_Comparand), "+m" (*_Destination)
570
+ : "r" (_Exchange) : "memory");
571
+ return _Comparand;
572
+ }
573
+ #endif
574
+ #if defined(__x86_64__)
575
+ static __inline__ __int64 __DEFAULT_FN_ATTRS
576
+ _InterlockedCompareExchange64_HLEAcquire(__int64 volatile *_Destination,
577
+ __int64 _Exchange, __int64 _Comparand) {
578
+ __asm__ __volatile__(".byte 0xf2 ; lock ; cmpxchg %2, %1"
579
+ : "+a" (_Comparand), "+m" (*_Destination)
580
+ : "r" (_Exchange) : "memory");
581
+ return _Comparand;
582
+ }
583
+ static __inline__ __int64 __DEFAULT_FN_ATTRS
584
+ _InterlockedCompareExchange64_HLERelease(__int64 volatile *_Destination,
585
+ __int64 _Exchange, __int64 _Comparand) {
586
+ __asm__ __volatile__(".byte 0xf3 ; lock ; cmpxchg %2, %1"
587
+ : "+a" (_Comparand), "+m" (*_Destination)
588
+ : "r" (_Exchange) : "memory");
589
+ return _Comparand;
590
+ }
591
+ #endif
592
+ #ifdef __cplusplus
593
+ }
594
+ #endif
595
+
596
+ #undef __DEFAULT_FN_ATTRS
597
+
598
+ #endif /* defined(_MSC_VER) && __has_extension(gnu_asm) */
599
+
600
+ #endif /* __IMMINTRIN_H */