@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,136 @@
1
+ /*===---- lwpintrin.h - LWP intrinsics -------------------------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===-----------------------------------------------------------------------===
8
+ */
9
+
10
+ #ifndef __X86INTRIN_H
11
+ #error "Never use <lwpintrin.h> directly; include <x86intrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __LWPINTRIN_H
15
+ #define __LWPINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lwp")))
19
+
20
+ /// Parses the LWPCB at the specified address and enables
21
+ /// profiling if valid.
22
+ ///
23
+ /// \headerfile <x86intrin.h>
24
+ ///
25
+ /// This intrinsic corresponds to the <c> LLWPCB </c> instruction.
26
+ ///
27
+ /// \param __addr
28
+ /// Address to the new Lightweight Profiling Control Block (LWPCB). If the
29
+ /// LWPCB is valid, writes the address into the LWP_CBADDR MSR and enables
30
+ /// Lightweight Profiling.
31
+ static __inline__ void __DEFAULT_FN_ATTRS
32
+ __llwpcb (void *__addr)
33
+ {
34
+ __builtin_ia32_llwpcb(__addr);
35
+ }
36
+
37
+ /// Flushes the LWP state to memory and returns the address of the LWPCB.
38
+ ///
39
+ /// \headerfile <x86intrin.h>
40
+ ///
41
+ /// This intrinsic corresponds to the <c> SLWPCB </c> instruction.
42
+ ///
43
+ /// \return
44
+ /// Address to the current Lightweight Profiling Control Block (LWPCB).
45
+ /// If LWP is not currently enabled, returns NULL.
46
+ static __inline__ void* __DEFAULT_FN_ATTRS
47
+ __slwpcb (void)
48
+ {
49
+ return __builtin_ia32_slwpcb();
50
+ }
51
+
52
+ /// Inserts programmed event record into the LWP event ring buffer
53
+ /// and advances the ring buffer pointer.
54
+ ///
55
+ /// \headerfile <x86intrin.h>
56
+ ///
57
+ /// This intrinsic corresponds to the <c> LWPINS </c> instruction.
58
+ ///
59
+ /// \param DATA2
60
+ /// A 32-bit value is zero-extended and inserted into the 64-bit Data2 field.
61
+ /// \param DATA1
62
+ /// A 32-bit value is inserted into the 32-bit Data1 field.
63
+ /// \param FLAGS
64
+ /// A 32-bit immediate value is inserted into the 32-bit Flags field.
65
+ /// \returns If the ring buffer is full and LWP is running in Synchronized Mode,
66
+ /// the event record overwrites the last record in the buffer, the MissedEvents
67
+ /// counter in the LWPCB is incremented, the head pointer is not advanced, and
68
+ /// 1 is returned. Otherwise 0 is returned.
69
+ #define __lwpins32(DATA2, DATA1, FLAGS) \
70
+ (__builtin_ia32_lwpins32((unsigned int) (DATA2), (unsigned int) (DATA1), \
71
+ (unsigned int) (FLAGS)))
72
+
73
+ /// Decrements the LWP programmed value sample event counter. If the result is
74
+ /// negative, inserts an event record into the LWP event ring buffer in memory
75
+ /// and advances the ring buffer pointer.
76
+ ///
77
+ /// \headerfile <x86intrin.h>
78
+ ///
79
+ /// This intrinsic corresponds to the <c> LWPVAL </c> instruction.
80
+ ///
81
+ /// \param DATA2
82
+ /// A 32-bit value is zero-extended and inserted into the 64-bit Data2 field.
83
+ /// \param DATA1
84
+ /// A 32-bit value is inserted into the 32-bit Data1 field.
85
+ /// \param FLAGS
86
+ /// A 32-bit immediate value is inserted into the 32-bit Flags field.
87
+ #define __lwpval32(DATA2, DATA1, FLAGS) \
88
+ (__builtin_ia32_lwpval32((unsigned int) (DATA2), (unsigned int) (DATA1), \
89
+ (unsigned int) (FLAGS)))
90
+
91
+ #ifdef __x86_64__
92
+
93
+ /// Inserts programmed event record into the LWP event ring buffer
94
+ /// and advances the ring buffer pointer.
95
+ ///
96
+ /// \headerfile <x86intrin.h>
97
+ ///
98
+ /// This intrinsic corresponds to the <c> LWPINS </c> instruction.
99
+ ///
100
+ /// \param DATA2
101
+ /// A 64-bit value is inserted into the 64-bit Data2 field.
102
+ /// \param DATA1
103
+ /// A 32-bit value is inserted into the 32-bit Data1 field.
104
+ /// \param FLAGS
105
+ /// A 32-bit immediate value is inserted into the 32-bit Flags field.
106
+ /// \returns If the ring buffer is full and LWP is running in Synchronized Mode,
107
+ /// the event record overwrites the last record in the buffer, the MissedEvents
108
+ /// counter in the LWPCB is incremented, the head pointer is not advanced, and
109
+ /// 1 is returned. Otherwise 0 is returned.
110
+ #define __lwpins64(DATA2, DATA1, FLAGS) \
111
+ (__builtin_ia32_lwpins64((unsigned long long) (DATA2), (unsigned int) (DATA1), \
112
+ (unsigned int) (FLAGS)))
113
+
114
+ /// Decrements the LWP programmed value sample event counter. If the result is
115
+ /// negative, inserts an event record into the LWP event ring buffer in memory
116
+ /// and advances the ring buffer pointer.
117
+ ///
118
+ /// \headerfile <x86intrin.h>
119
+ ///
120
+ /// This intrinsic corresponds to the <c> LWPVAL </c> instruction.
121
+ ///
122
+ /// \param DATA2
123
+ /// A 64-bit value is and inserted into the 64-bit Data2 field.
124
+ /// \param DATA1
125
+ /// A 32-bit value is inserted into the 32-bit Data1 field.
126
+ /// \param FLAGS
127
+ /// A 32-bit immediate value is inserted into the 32-bit Flags field.
128
+ #define __lwpval64(DATA2, DATA1, FLAGS) \
129
+ (__builtin_ia32_lwpval64((unsigned long long) (DATA2), (unsigned int) (DATA1), \
130
+ (unsigned int) (FLAGS)))
131
+
132
+ #endif
133
+
134
+ #undef __DEFAULT_FN_ATTRS
135
+
136
+ #endif /* __LWPINTRIN_H */
@@ -0,0 +1,104 @@
1
+ /*===---- lzcntintrin.h - LZCNT 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
+ #if !defined __X86INTRIN_H && !defined __IMMINTRIN_H
11
+ #error "Never use <lzcntintrin.h> directly; include <x86intrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __LZCNTINTRIN_H
15
+ #define __LZCNTINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("lzcnt")))
19
+
20
+ #ifndef _MSC_VER
21
+ /// Counts the number of leading zero bits in the operand.
22
+ ///
23
+ /// \headerfile <x86intrin.h>
24
+ ///
25
+ /// This intrinsic corresponds to the \c LZCNT instruction.
26
+ ///
27
+ /// \param __X
28
+ /// An unsigned 16-bit integer whose leading zeros are to be counted.
29
+ /// \returns An unsigned 16-bit integer containing the number of leading zero
30
+ /// bits in the operand.
31
+ #define __lzcnt16(X) __builtin_ia32_lzcnt_u16((unsigned short)(X))
32
+ #endif // _MSC_VER
33
+
34
+ /// Counts the number of leading zero bits in the operand.
35
+ ///
36
+ /// \headerfile <x86intrin.h>
37
+ ///
38
+ /// This intrinsic corresponds to the \c LZCNT instruction.
39
+ ///
40
+ /// \param __X
41
+ /// An unsigned 32-bit integer whose leading zeros are to be counted.
42
+ /// \returns An unsigned 32-bit integer containing the number of leading zero
43
+ /// bits in the operand.
44
+ /// \see _lzcnt_u32
45
+ static __inline__ unsigned int __DEFAULT_FN_ATTRS
46
+ __lzcnt32(unsigned int __X)
47
+ {
48
+ return __builtin_ia32_lzcnt_u32(__X);
49
+ }
50
+
51
+ /// Counts the number of leading zero bits in the operand.
52
+ ///
53
+ /// \headerfile <x86intrin.h>
54
+ ///
55
+ /// This intrinsic corresponds to the \c LZCNT instruction.
56
+ ///
57
+ /// \param __X
58
+ /// An unsigned 32-bit integer whose leading zeros are to be counted.
59
+ /// \returns An unsigned 32-bit integer containing the number of leading zero
60
+ /// bits in the operand.
61
+ /// \see __lzcnt32
62
+ static __inline__ unsigned int __DEFAULT_FN_ATTRS
63
+ _lzcnt_u32(unsigned int __X)
64
+ {
65
+ return __builtin_ia32_lzcnt_u32(__X);
66
+ }
67
+
68
+ #ifdef __x86_64__
69
+ #ifndef _MSC_VER
70
+ /// Counts the number of leading zero bits in the operand.
71
+ ///
72
+ /// \headerfile <x86intrin.h>
73
+ ///
74
+ /// This intrinsic corresponds to the \c LZCNT instruction.
75
+ ///
76
+ /// \param __X
77
+ /// An unsigned 64-bit integer whose leading zeros are to be counted.
78
+ /// \returns An unsigned 64-bit integer containing the number of leading zero
79
+ /// bits in the operand.
80
+ /// \see _lzcnt_u64
81
+ #define __lzcnt64(X) __builtin_ia32_lzcnt_u64((unsigned long long)(X))
82
+ #endif // _MSC_VER
83
+
84
+ /// Counts the number of leading zero bits in the operand.
85
+ ///
86
+ /// \headerfile <x86intrin.h>
87
+ ///
88
+ /// This intrinsic corresponds to the \c LZCNT instruction.
89
+ ///
90
+ /// \param __X
91
+ /// An unsigned 64-bit integer whose leading zeros are to be counted.
92
+ /// \returns An unsigned 64-bit integer containing the number of leading zero
93
+ /// bits in the operand.
94
+ /// \see __lzcnt64
95
+ static __inline__ unsigned long long __DEFAULT_FN_ATTRS
96
+ _lzcnt_u64(unsigned long long __X)
97
+ {
98
+ return __builtin_ia32_lzcnt_u64(__X);
99
+ }
100
+ #endif
101
+
102
+ #undef __DEFAULT_FN_ATTRS
103
+
104
+ #endif /* __LZCNTINTRIN_H */
@@ -0,0 +1,157 @@
1
+ /*===---- mm3dnow.h - 3DNow! 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 _MM3DNOW_H_INCLUDED
11
+ #define _MM3DNOW_H_INCLUDED
12
+
13
+ #include <mmintrin.h>
14
+ #include <prfchwintrin.h>
15
+
16
+ typedef float __v2sf __attribute__((__vector_size__(8)));
17
+
18
+ /* Define the default attributes for the functions in this file. */
19
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("3dnow"), __min_vector_width__(64)))
20
+
21
+ static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("3dnow")))
22
+ _m_femms(void) {
23
+ __builtin_ia32_femms();
24
+ }
25
+
26
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
27
+ _m_pavgusb(__m64 __m1, __m64 __m2) {
28
+ return (__m64)__builtin_ia32_pavgusb((__v8qi)__m1, (__v8qi)__m2);
29
+ }
30
+
31
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
32
+ _m_pf2id(__m64 __m) {
33
+ return (__m64)__builtin_ia32_pf2id((__v2sf)__m);
34
+ }
35
+
36
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
37
+ _m_pfacc(__m64 __m1, __m64 __m2) {
38
+ return (__m64)__builtin_ia32_pfacc((__v2sf)__m1, (__v2sf)__m2);
39
+ }
40
+
41
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
42
+ _m_pfadd(__m64 __m1, __m64 __m2) {
43
+ return (__m64)__builtin_ia32_pfadd((__v2sf)__m1, (__v2sf)__m2);
44
+ }
45
+
46
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
47
+ _m_pfcmpeq(__m64 __m1, __m64 __m2) {
48
+ return (__m64)__builtin_ia32_pfcmpeq((__v2sf)__m1, (__v2sf)__m2);
49
+ }
50
+
51
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
52
+ _m_pfcmpge(__m64 __m1, __m64 __m2) {
53
+ return (__m64)__builtin_ia32_pfcmpge((__v2sf)__m1, (__v2sf)__m2);
54
+ }
55
+
56
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
57
+ _m_pfcmpgt(__m64 __m1, __m64 __m2) {
58
+ return (__m64)__builtin_ia32_pfcmpgt((__v2sf)__m1, (__v2sf)__m2);
59
+ }
60
+
61
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
62
+ _m_pfmax(__m64 __m1, __m64 __m2) {
63
+ return (__m64)__builtin_ia32_pfmax((__v2sf)__m1, (__v2sf)__m2);
64
+ }
65
+
66
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
67
+ _m_pfmin(__m64 __m1, __m64 __m2) {
68
+ return (__m64)__builtin_ia32_pfmin((__v2sf)__m1, (__v2sf)__m2);
69
+ }
70
+
71
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
72
+ _m_pfmul(__m64 __m1, __m64 __m2) {
73
+ return (__m64)__builtin_ia32_pfmul((__v2sf)__m1, (__v2sf)__m2);
74
+ }
75
+
76
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
77
+ _m_pfrcp(__m64 __m) {
78
+ return (__m64)__builtin_ia32_pfrcp((__v2sf)__m);
79
+ }
80
+
81
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
82
+ _m_pfrcpit1(__m64 __m1, __m64 __m2) {
83
+ return (__m64)__builtin_ia32_pfrcpit1((__v2sf)__m1, (__v2sf)__m2);
84
+ }
85
+
86
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
87
+ _m_pfrcpit2(__m64 __m1, __m64 __m2) {
88
+ return (__m64)__builtin_ia32_pfrcpit2((__v2sf)__m1, (__v2sf)__m2);
89
+ }
90
+
91
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
92
+ _m_pfrsqrt(__m64 __m) {
93
+ return (__m64)__builtin_ia32_pfrsqrt((__v2sf)__m);
94
+ }
95
+
96
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
97
+ _m_pfrsqrtit1(__m64 __m1, __m64 __m2) {
98
+ return (__m64)__builtin_ia32_pfrsqit1((__v2sf)__m1, (__v2sf)__m2);
99
+ }
100
+
101
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
102
+ _m_pfsub(__m64 __m1, __m64 __m2) {
103
+ return (__m64)__builtin_ia32_pfsub((__v2sf)__m1, (__v2sf)__m2);
104
+ }
105
+
106
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
107
+ _m_pfsubr(__m64 __m1, __m64 __m2) {
108
+ return (__m64)__builtin_ia32_pfsubr((__v2sf)__m1, (__v2sf)__m2);
109
+ }
110
+
111
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
112
+ _m_pi2fd(__m64 __m) {
113
+ return (__m64)__builtin_ia32_pi2fd((__v2si)__m);
114
+ }
115
+
116
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
117
+ _m_pmulhrw(__m64 __m1, __m64 __m2) {
118
+ return (__m64)__builtin_ia32_pmulhrw((__v4hi)__m1, (__v4hi)__m2);
119
+ }
120
+
121
+ /* Handle the 3dnowa instructions here. */
122
+ #undef __DEFAULT_FN_ATTRS
123
+ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("3dnowa"), __min_vector_width__(64)))
124
+
125
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
126
+ _m_pf2iw(__m64 __m) {
127
+ return (__m64)__builtin_ia32_pf2iw((__v2sf)__m);
128
+ }
129
+
130
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
131
+ _m_pfnacc(__m64 __m1, __m64 __m2) {
132
+ return (__m64)__builtin_ia32_pfnacc((__v2sf)__m1, (__v2sf)__m2);
133
+ }
134
+
135
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
136
+ _m_pfpnacc(__m64 __m1, __m64 __m2) {
137
+ return (__m64)__builtin_ia32_pfpnacc((__v2sf)__m1, (__v2sf)__m2);
138
+ }
139
+
140
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
141
+ _m_pi2fw(__m64 __m) {
142
+ return (__m64)__builtin_ia32_pi2fw((__v2si)__m);
143
+ }
144
+
145
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
146
+ _m_pswapdsf(__m64 __m) {
147
+ return (__m64)__builtin_ia32_pswapdsf((__v2sf)__m);
148
+ }
149
+
150
+ static __inline__ __m64 __DEFAULT_FN_ATTRS
151
+ _m_pswapdsi(__m64 __m) {
152
+ return (__m64)__builtin_ia32_pswapdsi((__v2si)__m);
153
+ }
154
+
155
+ #undef __DEFAULT_FN_ATTRS
156
+
157
+ #endif
@@ -0,0 +1,67 @@
1
+ /*===---- mm_malloc.h - Allocating and Freeing Aligned Memory Blocks -------===
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 __MM_MALLOC_H
11
+ #define __MM_MALLOC_H
12
+
13
+ #include <stdlib.h>
14
+
15
+ #ifdef _WIN32
16
+ #include <malloc.h>
17
+ #else
18
+ #ifndef __cplusplus
19
+ extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
20
+ #else
21
+ // Some systems (e.g. those with GNU libc) declare posix_memalign with an
22
+ // exception specifier. Via an "egregious workaround" in
23
+ // Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid
24
+ // redeclaration of glibc's declaration.
25
+ extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
26
+ #endif
27
+ #endif
28
+
29
+ #if !(defined(_WIN32) && defined(_mm_malloc))
30
+ static __inline__ void *__attribute__((__always_inline__, __nodebug__,
31
+ __malloc__))
32
+ _mm_malloc(size_t __size, size_t __align)
33
+ {
34
+ if (__align == 1) {
35
+ return malloc(__size);
36
+ }
37
+
38
+ if (!(__align & (__align - 1)) && __align < sizeof(void *))
39
+ __align = sizeof(void *);
40
+
41
+ void *__mallocedMemory;
42
+ #if defined(__MINGW32__)
43
+ __mallocedMemory = __mingw_aligned_malloc(__size, __align);
44
+ #elif defined(_WIN32)
45
+ __mallocedMemory = _aligned_malloc(__size, __align);
46
+ #else
47
+ if (posix_memalign(&__mallocedMemory, __align, __size))
48
+ return 0;
49
+ #endif
50
+
51
+ return __mallocedMemory;
52
+ }
53
+
54
+ static __inline__ void __attribute__((__always_inline__, __nodebug__))
55
+ _mm_free(void *__p)
56
+ {
57
+ #if defined(__MINGW32__)
58
+ __mingw_aligned_free(__p);
59
+ #elif defined(_WIN32)
60
+ _aligned_free(__p);
61
+ #else
62
+ free(__p);
63
+ #endif
64
+ }
65
+ #endif
66
+
67
+ #endif /* __MM_MALLOC_H */