@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,63 @@
1
+ /*===------------------ enqcmdintrin.h - enqcmd 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 <enqcmdintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __ENQCMDINTRIN_H
15
+ #define __ENQCMDINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file */
18
+ #define _DEFAULT_FN_ATTRS \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("enqcmd")))
20
+
21
+ /// Reads 64-byte command pointed by \a __src, formats 64-byte enqueue store
22
+ /// data, and performs 64-byte enqueue store to memory pointed by \a __dst.
23
+ /// This intrinsics may only be used in User mode.
24
+ ///
25
+ /// \headerfile <x86intrin.h>
26
+ ///
27
+ /// This intrinsics corresponds to the <c> ENQCMD </c> instruction.
28
+ ///
29
+ /// \param __dst
30
+ /// Pointer to the destination of the enqueue store.
31
+ /// \param __src
32
+ /// Pointer to 64-byte command data.
33
+ /// \returns If the command data is successfully written to \a __dst then 0 is
34
+ /// returned. Otherwise 1 is returned.
35
+ static __inline__ int _DEFAULT_FN_ATTRS
36
+ _enqcmd (void *__dst, const void *__src)
37
+ {
38
+ return __builtin_ia32_enqcmd(__dst, __src);
39
+ }
40
+
41
+ /// Reads 64-byte command pointed by \a __src, formats 64-byte enqueue store
42
+ /// data, and performs 64-byte enqueue store to memory pointed by \a __dst
43
+ /// This intrinsic may only be used in Privileged mode.
44
+ ///
45
+ /// \headerfile <x86intrin.h>
46
+ ///
47
+ /// This intrinsics corresponds to the <c> ENQCMDS </c> instruction.
48
+ ///
49
+ /// \param __dst
50
+ /// Pointer to the destination of the enqueue store.
51
+ /// \param __src
52
+ /// Pointer to 64-byte command data.
53
+ /// \returns If the command data is successfully written to \a __dst then 0 is
54
+ /// returned. Otherwise 1 is returned.
55
+ static __inline__ int _DEFAULT_FN_ATTRS
56
+ _enqcmds (void *__dst, const void *__src)
57
+ {
58
+ return __builtin_ia32_enqcmds(__dst, __src);
59
+ }
60
+
61
+ #undef _DEFAULT_FN_ATTRS
62
+
63
+ #endif /* __ENQCMDINTRIN_H */
@@ -0,0 +1,162 @@
1
+ /*===---- f16cintrin.h - F16C 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 __IMMINTRIN_H
11
+ #error "Never use <f16cintrin.h> directly; include <immintrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __F16CINTRIN_H
15
+ #define __F16CINTRIN_H
16
+
17
+ /* Define the default attributes for the functions in this file. */
18
+ #define __DEFAULT_FN_ATTRS128 \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(128)))
20
+ #define __DEFAULT_FN_ATTRS256 \
21
+ __attribute__((__always_inline__, __nodebug__, __target__("f16c"), __min_vector_width__(256)))
22
+
23
+ /* NOTE: Intel documents the 128-bit versions of these as being in emmintrin.h,
24
+ * but that's because icc can emulate these without f16c using a library call.
25
+ * Since we don't do that let's leave these in f16cintrin.h.
26
+ */
27
+
28
+ /// Converts a 16-bit half-precision float value into a 32-bit float
29
+ /// value.
30
+ ///
31
+ /// \headerfile <x86intrin.h>
32
+ ///
33
+ /// This intrinsic corresponds to the <c> VCVTPH2PS </c> instruction.
34
+ ///
35
+ /// \param __a
36
+ /// A 16-bit half-precision float value.
37
+ /// \returns The converted 32-bit float value.
38
+ static __inline float __DEFAULT_FN_ATTRS128
39
+ _cvtsh_ss(unsigned short __a)
40
+ {
41
+ __v8hi __v = {(short)__a, 0, 0, 0, 0, 0, 0, 0};
42
+ __v4sf __r = __builtin_ia32_vcvtph2ps(__v);
43
+ return __r[0];
44
+ }
45
+
46
+ /// Converts a 32-bit single-precision float value to a 16-bit
47
+ /// half-precision float value.
48
+ ///
49
+ /// \headerfile <x86intrin.h>
50
+ ///
51
+ /// \code
52
+ /// unsigned short _cvtss_sh(float a, const int imm);
53
+ /// \endcode
54
+ ///
55
+ /// This intrinsic corresponds to the <c> VCVTPS2PH </c> instruction.
56
+ ///
57
+ /// \param a
58
+ /// A 32-bit single-precision float value to be converted to a 16-bit
59
+ /// half-precision float value.
60
+ /// \param imm
61
+ /// An immediate value controlling rounding using bits [2:0]: \n
62
+ /// 000: Nearest \n
63
+ /// 001: Down \n
64
+ /// 010: Up \n
65
+ /// 011: Truncate \n
66
+ /// 1XX: Use MXCSR.RC for rounding
67
+ /// \returns The converted 16-bit half-precision float value.
68
+ #define _cvtss_sh(a, imm) \
69
+ (unsigned short)(((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, \
70
+ (imm)))[0])
71
+
72
+ /// Converts a 128-bit vector containing 32-bit float values into a
73
+ /// 128-bit vector containing 16-bit half-precision float values.
74
+ ///
75
+ /// \headerfile <x86intrin.h>
76
+ ///
77
+ /// \code
78
+ /// __m128i _mm_cvtps_ph(__m128 a, const int imm);
79
+ /// \endcode
80
+ ///
81
+ /// This intrinsic corresponds to the <c> VCVTPS2PH </c> instruction.
82
+ ///
83
+ /// \param a
84
+ /// A 128-bit vector containing 32-bit float values.
85
+ /// \param imm
86
+ /// An immediate value controlling rounding using bits [2:0]: \n
87
+ /// 000: Nearest \n
88
+ /// 001: Down \n
89
+ /// 010: Up \n
90
+ /// 011: Truncate \n
91
+ /// 1XX: Use MXCSR.RC for rounding
92
+ /// \returns A 128-bit vector containing converted 16-bit half-precision float
93
+ /// values. The lower 64 bits are used to store the converted 16-bit
94
+ /// half-precision floating-point values.
95
+ #define _mm_cvtps_ph(a, imm) \
96
+ (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)(__m128)(a), (imm))
97
+
98
+ /// Converts a 128-bit vector containing 16-bit half-precision float
99
+ /// values into a 128-bit vector containing 32-bit float values.
100
+ ///
101
+ /// \headerfile <x86intrin.h>
102
+ ///
103
+ /// This intrinsic corresponds to the <c> VCVTPH2PS </c> instruction.
104
+ ///
105
+ /// \param __a
106
+ /// A 128-bit vector containing 16-bit half-precision float values. The lower
107
+ /// 64 bits are used in the conversion.
108
+ /// \returns A 128-bit vector of [4 x float] containing converted float values.
109
+ static __inline __m128 __DEFAULT_FN_ATTRS128
110
+ _mm_cvtph_ps(__m128i __a)
111
+ {
112
+ return (__m128)__builtin_ia32_vcvtph2ps((__v8hi)__a);
113
+ }
114
+
115
+ /// Converts a 256-bit vector of [8 x float] into a 128-bit vector
116
+ /// containing 16-bit half-precision float values.
117
+ ///
118
+ /// \headerfile <x86intrin.h>
119
+ ///
120
+ /// \code
121
+ /// __m128i _mm256_cvtps_ph(__m256 a, const int imm);
122
+ /// \endcode
123
+ ///
124
+ /// This intrinsic corresponds to the <c> VCVTPS2PH </c> instruction.
125
+ ///
126
+ /// \param a
127
+ /// A 256-bit vector containing 32-bit single-precision float values to be
128
+ /// converted to 16-bit half-precision float values.
129
+ /// \param imm
130
+ /// An immediate value controlling rounding using bits [2:0]: \n
131
+ /// 000: Nearest \n
132
+ /// 001: Down \n
133
+ /// 010: Up \n
134
+ /// 011: Truncate \n
135
+ /// 1XX: Use MXCSR.RC for rounding
136
+ /// \returns A 128-bit vector containing the converted 16-bit half-precision
137
+ /// float values.
138
+ #define _mm256_cvtps_ph(a, imm) \
139
+ (__m128i)__builtin_ia32_vcvtps2ph256((__v8sf)(__m256)(a), (imm))
140
+
141
+ /// Converts a 128-bit vector containing 16-bit half-precision float
142
+ /// values into a 256-bit vector of [8 x float].
143
+ ///
144
+ /// \headerfile <x86intrin.h>
145
+ ///
146
+ /// This intrinsic corresponds to the <c> VCVTPH2PS </c> instruction.
147
+ ///
148
+ /// \param __a
149
+ /// A 128-bit vector containing 16-bit half-precision float values to be
150
+ /// converted to 32-bit single-precision float values.
151
+ /// \returns A vector of [8 x float] containing the converted 32-bit
152
+ /// single-precision float values.
153
+ static __inline __m256 __DEFAULT_FN_ATTRS256
154
+ _mm256_cvtph_ps(__m128i __a)
155
+ {
156
+ return (__m256)__builtin_ia32_vcvtph2ps256((__v8hi)__a);
157
+ }
158
+
159
+ #undef __DEFAULT_FN_ATTRS128
160
+ #undef __DEFAULT_FN_ATTRS256
161
+
162
+ #endif /* __F16CINTRIN_H */
@@ -0,0 +1,152 @@
1
+ /*===---- float.h - Characteristics of floating point types ----------------===
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 __CLANG_FLOAT_H
11
+ #define __CLANG_FLOAT_H
12
+
13
+ /* If we're on MinGW, fall back to the system's float.h, which might have
14
+ * additional definitions provided for Windows.
15
+ * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
16
+ *
17
+ * Also fall back on Darwin to allow additional definitions and
18
+ * implementation-defined values.
19
+ */
20
+ #if (defined(__APPLE__) || (defined(__MINGW32__) || defined(_MSC_VER))) && \
21
+ __STDC_HOSTED__ && __has_include_next(<float.h>)
22
+
23
+ /* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level
24
+ * of #include_next<float.h> to keep Metrowerks compilers happy. Avoid this
25
+ * extra indirection.
26
+ */
27
+ #ifdef __APPLE__
28
+ #define _FLOAT_H_
29
+ #endif
30
+
31
+ # include_next <float.h>
32
+
33
+ /* Undefine anything that we'll be redefining below. */
34
+ # undef FLT_EVAL_METHOD
35
+ # undef FLT_ROUNDS
36
+ # undef FLT_RADIX
37
+ # undef FLT_MANT_DIG
38
+ # undef DBL_MANT_DIG
39
+ # undef LDBL_MANT_DIG
40
+ # if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__) || __cplusplus >= 201103L
41
+ # undef DECIMAL_DIG
42
+ # endif
43
+ # undef FLT_DIG
44
+ # undef DBL_DIG
45
+ # undef LDBL_DIG
46
+ # undef FLT_MIN_EXP
47
+ # undef DBL_MIN_EXP
48
+ # undef LDBL_MIN_EXP
49
+ # undef FLT_MIN_10_EXP
50
+ # undef DBL_MIN_10_EXP
51
+ # undef LDBL_MIN_10_EXP
52
+ # undef FLT_MAX_EXP
53
+ # undef DBL_MAX_EXP
54
+ # undef LDBL_MAX_EXP
55
+ # undef FLT_MAX_10_EXP
56
+ # undef DBL_MAX_10_EXP
57
+ # undef LDBL_MAX_10_EXP
58
+ # undef FLT_MAX
59
+ # undef DBL_MAX
60
+ # undef LDBL_MAX
61
+ # undef FLT_EPSILON
62
+ # undef DBL_EPSILON
63
+ # undef LDBL_EPSILON
64
+ # undef FLT_MIN
65
+ # undef DBL_MIN
66
+ # undef LDBL_MIN
67
+ # if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) || __cplusplus >= 201703L
68
+ # undef FLT_TRUE_MIN
69
+ # undef DBL_TRUE_MIN
70
+ # undef LDBL_TRUE_MIN
71
+ # undef FLT_DECIMAL_DIG
72
+ # undef DBL_DECIMAL_DIG
73
+ # undef LDBL_DECIMAL_DIG
74
+ # undef FLT_HAS_SUBNORM
75
+ # undef DBL_HAS_SUBNORM
76
+ # undef LDBL_HAS_SUBNORM
77
+ # endif
78
+ #endif
79
+
80
+ /* Characteristics of floating point types, C99 5.2.4.2.2 */
81
+
82
+ #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
83
+ #define FLT_ROUNDS (__builtin_flt_rounds())
84
+ #define FLT_RADIX __FLT_RADIX__
85
+
86
+ #define FLT_MANT_DIG __FLT_MANT_DIG__
87
+ #define DBL_MANT_DIG __DBL_MANT_DIG__
88
+ #define LDBL_MANT_DIG __LDBL_MANT_DIG__
89
+
90
+ #if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__) || __cplusplus >= 201103L
91
+ # define DECIMAL_DIG __DECIMAL_DIG__
92
+ #endif
93
+
94
+ #define FLT_DIG __FLT_DIG__
95
+ #define DBL_DIG __DBL_DIG__
96
+ #define LDBL_DIG __LDBL_DIG__
97
+
98
+ #define FLT_MIN_EXP __FLT_MIN_EXP__
99
+ #define DBL_MIN_EXP __DBL_MIN_EXP__
100
+ #define LDBL_MIN_EXP __LDBL_MIN_EXP__
101
+
102
+ #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
103
+ #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
104
+ #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
105
+
106
+ #define FLT_MAX_EXP __FLT_MAX_EXP__
107
+ #define DBL_MAX_EXP __DBL_MAX_EXP__
108
+ #define LDBL_MAX_EXP __LDBL_MAX_EXP__
109
+
110
+ #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
111
+ #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
112
+ #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
113
+
114
+ #define FLT_MAX __FLT_MAX__
115
+ #define DBL_MAX __DBL_MAX__
116
+ #define LDBL_MAX __LDBL_MAX__
117
+
118
+ #define FLT_EPSILON __FLT_EPSILON__
119
+ #define DBL_EPSILON __DBL_EPSILON__
120
+ #define LDBL_EPSILON __LDBL_EPSILON__
121
+
122
+ #define FLT_MIN __FLT_MIN__
123
+ #define DBL_MIN __DBL_MIN__
124
+ #define LDBL_MIN __LDBL_MIN__
125
+
126
+ #if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) || __cplusplus >= 201703L
127
+ # define FLT_TRUE_MIN __FLT_DENORM_MIN__
128
+ # define DBL_TRUE_MIN __DBL_DENORM_MIN__
129
+ # define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
130
+ # define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
131
+ # define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
132
+ # define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
133
+ # define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
134
+ # define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
135
+ # define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
136
+ #endif
137
+
138
+ #ifdef __STDC_WANT_IEC_60559_TYPES_EXT__
139
+ # define FLT16_MANT_DIG __FLT16_MANT_DIG__
140
+ # define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__
141
+ # define FLT16_DIG __FLT16_DIG__
142
+ # define FLT16_MIN_EXP __FLT16_MIN_EXP__
143
+ # define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__
144
+ # define FLT16_MAX_EXP __FLT16_MAX_EXP__
145
+ # define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__
146
+ # define FLT16_MAX __FLT16_MAX__
147
+ # define FLT16_EPSILON __FLT16_EPSILON__
148
+ # define FLT16_MIN __FLT16_MIN__
149
+ # define FLT16_TRUE_MIN __FLT16_TRUE_MIN__
150
+ #endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */
151
+
152
+ #endif /* __CLANG_FLOAT_H */
@@ -0,0 +1,218 @@
1
+ /*===---- fma4intrin.h - FMA4 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 <fma4intrin.h> directly; include <x86intrin.h> instead."
12
+ #endif
13
+
14
+ #ifndef __FMA4INTRIN_H
15
+ #define __FMA4INTRIN_H
16
+
17
+ #include <pmmintrin.h>
18
+
19
+ /* Define the default attributes for the functions in this file. */
20
+ #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("fma4"), __min_vector_width__(128)))
21
+ #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("fma4"), __min_vector_width__(256)))
22
+
23
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
24
+ _mm_macc_ps(__m128 __A, __m128 __B, __m128 __C)
25
+ {
26
+ return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
27
+ }
28
+
29
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
30
+ _mm_macc_pd(__m128d __A, __m128d __B, __m128d __C)
31
+ {
32
+ return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
33
+ }
34
+
35
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
36
+ _mm_macc_ss(__m128 __A, __m128 __B, __m128 __C)
37
+ {
38
+ return (__m128)__builtin_ia32_vfmaddss((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
39
+ }
40
+
41
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
42
+ _mm_macc_sd(__m128d __A, __m128d __B, __m128d __C)
43
+ {
44
+ return (__m128d)__builtin_ia32_vfmaddsd((__v2df)__A, (__v2df)__B, (__v2df)__C);
45
+ }
46
+
47
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
48
+ _mm_msub_ps(__m128 __A, __m128 __B, __m128 __C)
49
+ {
50
+ return (__m128)__builtin_ia32_vfmaddps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
51
+ }
52
+
53
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
54
+ _mm_msub_pd(__m128d __A, __m128d __B, __m128d __C)
55
+ {
56
+ return (__m128d)__builtin_ia32_vfmaddpd((__v2df)__A, (__v2df)__B, -(__v2df)__C);
57
+ }
58
+
59
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
60
+ _mm_msub_ss(__m128 __A, __m128 __B, __m128 __C)
61
+ {
62
+ return (__m128)__builtin_ia32_vfmaddss((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
63
+ }
64
+
65
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
66
+ _mm_msub_sd(__m128d __A, __m128d __B, __m128d __C)
67
+ {
68
+ return (__m128d)__builtin_ia32_vfmaddsd((__v2df)__A, (__v2df)__B, -(__v2df)__C);
69
+ }
70
+
71
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
72
+ _mm_nmacc_ps(__m128 __A, __m128 __B, __m128 __C)
73
+ {
74
+ return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
75
+ }
76
+
77
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
78
+ _mm_nmacc_pd(__m128d __A, __m128d __B, __m128d __C)
79
+ {
80
+ return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, (__v2df)__C);
81
+ }
82
+
83
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
84
+ _mm_nmacc_ss(__m128 __A, __m128 __B, __m128 __C)
85
+ {
86
+ return (__m128)__builtin_ia32_vfmaddss(-(__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
87
+ }
88
+
89
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
90
+ _mm_nmacc_sd(__m128d __A, __m128d __B, __m128d __C)
91
+ {
92
+ return (__m128d)__builtin_ia32_vfmaddsd(-(__v2df)__A, (__v2df)__B, (__v2df)__C);
93
+ }
94
+
95
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
96
+ _mm_nmsub_ps(__m128 __A, __m128 __B, __m128 __C)
97
+ {
98
+ return (__m128)__builtin_ia32_vfmaddps(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
99
+ }
100
+
101
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
102
+ _mm_nmsub_pd(__m128d __A, __m128d __B, __m128d __C)
103
+ {
104
+ return (__m128d)__builtin_ia32_vfmaddpd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C);
105
+ }
106
+
107
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
108
+ _mm_nmsub_ss(__m128 __A, __m128 __B, __m128 __C)
109
+ {
110
+ return (__m128)__builtin_ia32_vfmaddss(-(__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
111
+ }
112
+
113
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
114
+ _mm_nmsub_sd(__m128d __A, __m128d __B, __m128d __C)
115
+ {
116
+ return (__m128d)__builtin_ia32_vfmaddsd(-(__v2df)__A, (__v2df)__B, -(__v2df)__C);
117
+ }
118
+
119
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
120
+ _mm_maddsub_ps(__m128 __A, __m128 __B, __m128 __C)
121
+ {
122
+ return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, (__v4sf)__C);
123
+ }
124
+
125
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
126
+ _mm_maddsub_pd(__m128d __A, __m128d __B, __m128d __C)
127
+ {
128
+ return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, (__v2df)__C);
129
+ }
130
+
131
+ static __inline__ __m128 __DEFAULT_FN_ATTRS128
132
+ _mm_msubadd_ps(__m128 __A, __m128 __B, __m128 __C)
133
+ {
134
+ return (__m128)__builtin_ia32_vfmaddsubps((__v4sf)__A, (__v4sf)__B, -(__v4sf)__C);
135
+ }
136
+
137
+ static __inline__ __m128d __DEFAULT_FN_ATTRS128
138
+ _mm_msubadd_pd(__m128d __A, __m128d __B, __m128d __C)
139
+ {
140
+ return (__m128d)__builtin_ia32_vfmaddsubpd((__v2df)__A, (__v2df)__B, -(__v2df)__C);
141
+ }
142
+
143
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
144
+ _mm256_macc_ps(__m256 __A, __m256 __B, __m256 __C)
145
+ {
146
+ return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
147
+ }
148
+
149
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256
150
+ _mm256_macc_pd(__m256d __A, __m256d __B, __m256d __C)
151
+ {
152
+ return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
153
+ }
154
+
155
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
156
+ _mm256_msub_ps(__m256 __A, __m256 __B, __m256 __C)
157
+ {
158
+ return (__m256)__builtin_ia32_vfmaddps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
159
+ }
160
+
161
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256
162
+ _mm256_msub_pd(__m256d __A, __m256d __B, __m256d __C)
163
+ {
164
+ return (__m256d)__builtin_ia32_vfmaddpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C);
165
+ }
166
+
167
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
168
+ _mm256_nmacc_ps(__m256 __A, __m256 __B, __m256 __C)
169
+ {
170
+ return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
171
+ }
172
+
173
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256
174
+ _mm256_nmacc_pd(__m256d __A, __m256d __B, __m256d __C)
175
+ {
176
+ return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, (__v4df)__C);
177
+ }
178
+
179
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
180
+ _mm256_nmsub_ps(__m256 __A, __m256 __B, __m256 __C)
181
+ {
182
+ return (__m256)__builtin_ia32_vfmaddps256(-(__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
183
+ }
184
+
185
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256
186
+ _mm256_nmsub_pd(__m256d __A, __m256d __B, __m256d __C)
187
+ {
188
+ return (__m256d)__builtin_ia32_vfmaddpd256(-(__v4df)__A, (__v4df)__B, -(__v4df)__C);
189
+ }
190
+
191
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
192
+ _mm256_maddsub_ps(__m256 __A, __m256 __B, __m256 __C)
193
+ {
194
+ return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, (__v8sf)__C);
195
+ }
196
+
197
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256
198
+ _mm256_maddsub_pd(__m256d __A, __m256d __B, __m256d __C)
199
+ {
200
+ return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, (__v4df)__C);
201
+ }
202
+
203
+ static __inline__ __m256 __DEFAULT_FN_ATTRS256
204
+ _mm256_msubadd_ps(__m256 __A, __m256 __B, __m256 __C)
205
+ {
206
+ return (__m256)__builtin_ia32_vfmaddsubps256((__v8sf)__A, (__v8sf)__B, -(__v8sf)__C);
207
+ }
208
+
209
+ static __inline__ __m256d __DEFAULT_FN_ATTRS256
210
+ _mm256_msubadd_pd(__m256d __A, __m256d __B, __m256d __C)
211
+ {
212
+ return (__m256d)__builtin_ia32_vfmaddsubpd256((__v4df)__A, (__v4df)__B, -(__v4df)__C);
213
+ }
214
+
215
+ #undef __DEFAULT_FN_ATTRS128
216
+ #undef __DEFAULT_FN_ATTRS256
217
+
218
+ #endif /* __FMA4INTRIN_H */