@cpp-linter/clang-tidy-win32-x64 16.0.3 → 17.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{16 → 17}/include/__clang_cuda_intrinsics.h +191 -0
  4. package/lib/clang/{16 → 17}/include/__clang_cuda_math.h +1 -1
  5. package/lib/clang/{16 → 17}/include/__clang_hip_cmath.h +1 -1
  6. package/lib/clang/{16 → 17}/include/__clang_hip_libdevice_declares.h +32 -30
  7. package/lib/clang/{16 → 17}/include/__clang_hip_math.h +56 -71
  8. package/lib/clang/{16 → 17}/include/__clang_hip_runtime_wrapper.h +13 -0
  9. package/lib/clang/17/include/adxintrin.h +227 -0
  10. package/lib/clang/{16 → 17}/include/altivec.h +136 -124
  11. package/lib/clang/17/include/amxcomplexintrin.h +169 -0
  12. package/lib/clang/{16 → 17}/include/arm_acle.h +13 -9
  13. package/lib/clang/{16 → 17}/include/arm_neon.h +164 -1
  14. package/lib/clang/17/include/arm_sme_draft_spec_subject_to_change.h +642 -0
  15. package/lib/clang/{16 → 17}/include/arm_sve.h +68 -13
  16. package/lib/clang/17/include/avx2intrin.h +5263 -0
  17. package/lib/clang/{16 → 17}/include/avx512fintrin.h +17 -7
  18. package/lib/clang/{16 → 17}/include/avx512fp16intrin.h +12 -8
  19. package/lib/clang/{16 → 17}/include/avxintrin.h +20 -7
  20. package/lib/clang/17/include/avxvnniint16intrin.h +473 -0
  21. package/lib/clang/17/include/bmi2intrin.h +255 -0
  22. package/lib/clang/{16 → 17}/include/clflushoptintrin.h +9 -0
  23. package/lib/clang/{16 → 17}/include/clzerointrin.h +7 -5
  24. package/lib/clang/17/include/cuda_wrappers/bits/basic_string.h +9 -0
  25. package/lib/clang/17/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  26. package/lib/clang/17/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  27. package/lib/clang/17/include/fmaintrin.h +780 -0
  28. package/lib/clang/17/include/hlsl/hlsl_intrinsics.h +480 -0
  29. package/lib/clang/{16 → 17}/include/immintrin.h +116 -8
  30. package/lib/clang/{16 → 17}/include/limits.h +5 -1
  31. package/lib/clang/17/include/llvm_libc_wrappers/ctype.h +85 -0
  32. package/lib/clang/17/include/llvm_libc_wrappers/inttypes.h +34 -0
  33. package/lib/clang/17/include/llvm_libc_wrappers/stdio.h +34 -0
  34. package/lib/clang/17/include/llvm_libc_wrappers/stdlib.h +42 -0
  35. package/lib/clang/17/include/llvm_libc_wrappers/string.h +37 -0
  36. package/lib/clang/17/include/mwaitxintrin.h +62 -0
  37. package/lib/clang/{16 → 17}/include/opencl-c-base.h +3 -0
  38. package/lib/clang/{16 → 17}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -1
  39. package/lib/clang/{16 → 17}/include/openmp_wrappers/new +1 -1
  40. package/lib/clang/{16 → 17}/include/pmmintrin.h +12 -6
  41. package/lib/clang/{16 → 17}/include/ppc_wrappers/emmintrin.h +2 -1
  42. package/lib/clang/{16 → 17}/include/ppc_wrappers/smmintrin.h +2 -2
  43. package/lib/clang/17/include/rdseedintrin.h +105 -0
  44. package/lib/clang/17/include/riscv_ntlh.h +28 -0
  45. package/lib/clang/17/include/riscv_vector.h +400 -0
  46. package/lib/clang/17/include/sha512intrin.h +200 -0
  47. package/lib/clang/17/include/shaintrin.h +189 -0
  48. package/lib/clang/17/include/sifive_vector.h +16 -0
  49. package/lib/clang/17/include/sm3intrin.h +238 -0
  50. package/lib/clang/17/include/sm4intrin.h +269 -0
  51. package/lib/clang/{16 → 17}/include/stdalign.h +5 -0
  52. package/lib/clang/{16 → 17}/include/stdatomic.h +9 -2
  53. package/lib/clang/{16 → 17}/include/stddef.h +5 -0
  54. package/lib/clang/{16 → 17}/include/wasm_simd128.h +132 -12
  55. package/lib/clang/17/include/xsavecintrin.h +84 -0
  56. package/package.json +6 -6
  57. package/lib/clang/16/include/adxintrin.h +0 -72
  58. package/lib/clang/16/include/avx2intrin.h +0 -1148
  59. package/lib/clang/16/include/bmi2intrin.h +0 -81
  60. package/lib/clang/16/include/fmaintrin.h +0 -216
  61. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +0 -223
  62. package/lib/clang/16/include/mwaitxintrin.h +0 -33
  63. package/lib/clang/16/include/rdseedintrin.h +0 -42
  64. package/lib/clang/16/include/riscv_vector.h +0 -211
  65. package/lib/clang/16/include/shaintrin.h +0 -61
  66. package/lib/clang/16/include/xsavecintrin.h +0 -34
  67. /package/lib/clang/{16 → 17}/include/__clang_cuda_builtin_vars.h +0 -0
  68. /package/lib/clang/{16 → 17}/include/__clang_cuda_cmath.h +0 -0
  69. /package/lib/clang/{16 → 17}/include/__clang_cuda_complex_builtins.h +0 -0
  70. /package/lib/clang/{16 → 17}/include/__clang_cuda_device_functions.h +0 -0
  71. /package/lib/clang/{16 → 17}/include/__clang_cuda_libdevice_declares.h +0 -0
  72. /package/lib/clang/{16 → 17}/include/__clang_cuda_math_forward_declares.h +0 -0
  73. /package/lib/clang/{16 → 17}/include/__clang_cuda_runtime_wrapper.h +0 -0
  74. /package/lib/clang/{16 → 17}/include/__clang_cuda_texture_intrinsics.h +0 -0
  75. /package/lib/clang/{16 → 17}/include/__clang_hip_stdlib.h +0 -0
  76. /package/lib/clang/{16 → 17}/include/__stddef_max_align_t.h +0 -0
  77. /package/lib/clang/{16 → 17}/include/__wmmintrin_aes.h +0 -0
  78. /package/lib/clang/{16 → 17}/include/__wmmintrin_pclmul.h +0 -0
  79. /package/lib/clang/{16 → 17}/include/ammintrin.h +0 -0
  80. /package/lib/clang/{16 → 17}/include/amxfp16intrin.h +0 -0
  81. /package/lib/clang/{16 → 17}/include/amxintrin.h +0 -0
  82. /package/lib/clang/{16 → 17}/include/arm64intr.h +0 -0
  83. /package/lib/clang/{16 → 17}/include/arm_bf16.h +0 -0
  84. /package/lib/clang/{16 → 17}/include/arm_cde.h +0 -0
  85. /package/lib/clang/{16 → 17}/include/arm_cmse.h +0 -0
  86. /package/lib/clang/{16 → 17}/include/arm_fp16.h +0 -0
  87. /package/lib/clang/{16 → 17}/include/arm_mve.h +0 -0
  88. /package/lib/clang/{16 → 17}/include/arm_neon_sve_bridge.h +0 -0
  89. /package/lib/clang/{16 → 17}/include/armintr.h +0 -0
  90. /package/lib/clang/{16 → 17}/include/avx512bf16intrin.h +0 -0
  91. /package/lib/clang/{16 → 17}/include/avx512bitalgintrin.h +0 -0
  92. /package/lib/clang/{16 → 17}/include/avx512bwintrin.h +0 -0
  93. /package/lib/clang/{16 → 17}/include/avx512cdintrin.h +0 -0
  94. /package/lib/clang/{16 → 17}/include/avx512dqintrin.h +0 -0
  95. /package/lib/clang/{16 → 17}/include/avx512erintrin.h +0 -0
  96. /package/lib/clang/{16 → 17}/include/avx512ifmaintrin.h +0 -0
  97. /package/lib/clang/{16 → 17}/include/avx512ifmavlintrin.h +0 -0
  98. /package/lib/clang/{16 → 17}/include/avx512pfintrin.h +0 -0
  99. /package/lib/clang/{16 → 17}/include/avx512vbmi2intrin.h +0 -0
  100. /package/lib/clang/{16 → 17}/include/avx512vbmiintrin.h +0 -0
  101. /package/lib/clang/{16 → 17}/include/avx512vbmivlintrin.h +0 -0
  102. /package/lib/clang/{16 → 17}/include/avx512vlbf16intrin.h +0 -0
  103. /package/lib/clang/{16 → 17}/include/avx512vlbitalgintrin.h +0 -0
  104. /package/lib/clang/{16 → 17}/include/avx512vlbwintrin.h +0 -0
  105. /package/lib/clang/{16 → 17}/include/avx512vlcdintrin.h +0 -0
  106. /package/lib/clang/{16 → 17}/include/avx512vldqintrin.h +0 -0
  107. /package/lib/clang/{16 → 17}/include/avx512vlfp16intrin.h +0 -0
  108. /package/lib/clang/{16 → 17}/include/avx512vlintrin.h +0 -0
  109. /package/lib/clang/{16 → 17}/include/avx512vlvbmi2intrin.h +0 -0
  110. /package/lib/clang/{16 → 17}/include/avx512vlvnniintrin.h +0 -0
  111. /package/lib/clang/{16 → 17}/include/avx512vlvp2intersectintrin.h +0 -0
  112. /package/lib/clang/{16 → 17}/include/avx512vnniintrin.h +0 -0
  113. /package/lib/clang/{16 → 17}/include/avx512vp2intersectintrin.h +0 -0
  114. /package/lib/clang/{16 → 17}/include/avx512vpopcntdqintrin.h +0 -0
  115. /package/lib/clang/{16 → 17}/include/avx512vpopcntdqvlintrin.h +0 -0
  116. /package/lib/clang/{16 → 17}/include/avxifmaintrin.h +0 -0
  117. /package/lib/clang/{16 → 17}/include/avxneconvertintrin.h +0 -0
  118. /package/lib/clang/{16 → 17}/include/avxvnniint8intrin.h +0 -0
  119. /package/lib/clang/{16 → 17}/include/avxvnniintrin.h +0 -0
  120. /package/lib/clang/{16 → 17}/include/bmiintrin.h +0 -0
  121. /package/lib/clang/{16 → 17}/include/builtins.h +0 -0
  122. /package/lib/clang/{16 → 17}/include/cet.h +0 -0
  123. /package/lib/clang/{16 → 17}/include/cetintrin.h +0 -0
  124. /package/lib/clang/{16 → 17}/include/cldemoteintrin.h +0 -0
  125. /package/lib/clang/{16 → 17}/include/clwbintrin.h +0 -0
  126. /package/lib/clang/{16 → 17}/include/cmpccxaddintrin.h +0 -0
  127. /package/lib/clang/{16 → 17}/include/cpuid.h +0 -0
  128. /package/lib/clang/{16 → 17}/include/crc32intrin.h +0 -0
  129. /package/lib/clang/{16 → 17}/include/cuda_wrappers/algorithm +0 -0
  130. /package/lib/clang/{16 → 17}/include/cuda_wrappers/cmath +0 -0
  131. /package/lib/clang/{16 → 17}/include/cuda_wrappers/complex +0 -0
  132. /package/lib/clang/{16 → 17}/include/cuda_wrappers/new +0 -0
  133. /package/lib/clang/{16 → 17}/include/emmintrin.h +0 -0
  134. /package/lib/clang/{16 → 17}/include/enqcmdintrin.h +0 -0
  135. /package/lib/clang/{16 → 17}/include/f16cintrin.h +0 -0
  136. /package/lib/clang/{16 → 17}/include/float.h +0 -0
  137. /package/lib/clang/{16 → 17}/include/fma4intrin.h +0 -0
  138. /package/lib/clang/{16 → 17}/include/fxsrintrin.h +0 -0
  139. /package/lib/clang/{16 → 17}/include/gfniintrin.h +0 -0
  140. /package/lib/clang/{16 → 17}/include/hexagon_circ_brev_intrinsics.h +0 -0
  141. /package/lib/clang/{16 → 17}/include/hexagon_protos.h +0 -0
  142. /package/lib/clang/{16 → 17}/include/hexagon_types.h +0 -0
  143. /package/lib/clang/{16 → 17}/include/hlsl/hlsl_basic_types.h +0 -0
  144. /package/lib/clang/{16 → 17}/include/hlsl.h +0 -0
  145. /package/lib/clang/{16 → 17}/include/hresetintrin.h +0 -0
  146. /package/lib/clang/{16 → 17}/include/htmintrin.h +0 -0
  147. /package/lib/clang/{16 → 17}/include/htmxlintrin.h +0 -0
  148. /package/lib/clang/{16 → 17}/include/hvx_hexagon_protos.h +0 -0
  149. /package/lib/clang/{16 → 17}/include/ia32intrin.h +0 -0
  150. /package/lib/clang/{16 → 17}/include/intrin.h +0 -0
  151. /package/lib/clang/{16 → 17}/include/inttypes.h +0 -0
  152. /package/lib/clang/{16 → 17}/include/invpcidintrin.h +0 -0
  153. /package/lib/clang/{16 → 17}/include/iso646.h +0 -0
  154. /package/lib/clang/{16 → 17}/include/keylockerintrin.h +0 -0
  155. /package/lib/clang/{16 → 17}/include/larchintrin.h +0 -0
  156. /package/lib/clang/{16 → 17}/include/lwpintrin.h +0 -0
  157. /package/lib/clang/{16 → 17}/include/lzcntintrin.h +0 -0
  158. /package/lib/clang/{16 → 17}/include/mm3dnow.h +0 -0
  159. /package/lib/clang/{16 → 17}/include/mm_malloc.h +0 -0
  160. /package/lib/clang/{16 → 17}/include/mmintrin.h +0 -0
  161. /package/lib/clang/{16 → 17}/include/module.modulemap +0 -0
  162. /package/lib/clang/{16 → 17}/include/movdirintrin.h +0 -0
  163. /package/lib/clang/{16 → 17}/include/msa.h +0 -0
  164. /package/lib/clang/{16 → 17}/include/nmmintrin.h +0 -0
  165. /package/lib/clang/{16 → 17}/include/opencl-c.h +0 -0
  166. /package/lib/clang/{16 → 17}/include/openmp_wrappers/cmath +0 -0
  167. /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex +0 -0
  168. /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex.h +0 -0
  169. /package/lib/clang/{16 → 17}/include/openmp_wrappers/complex_cmath.h +0 -0
  170. /package/lib/clang/{16 → 17}/include/openmp_wrappers/math.h +0 -0
  171. /package/lib/clang/{16 → 17}/include/pconfigintrin.h +0 -0
  172. /package/lib/clang/{16 → 17}/include/pkuintrin.h +0 -0
  173. /package/lib/clang/{16 → 17}/include/popcntintrin.h +0 -0
  174. /package/lib/clang/{16 → 17}/include/ppc_wrappers/bmi2intrin.h +0 -0
  175. /package/lib/clang/{16 → 17}/include/ppc_wrappers/bmiintrin.h +0 -0
  176. /package/lib/clang/{16 → 17}/include/ppc_wrappers/immintrin.h +0 -0
  177. /package/lib/clang/{16 → 17}/include/ppc_wrappers/mm_malloc.h +0 -0
  178. /package/lib/clang/{16 → 17}/include/ppc_wrappers/mmintrin.h +0 -0
  179. /package/lib/clang/{16 → 17}/include/ppc_wrappers/pmmintrin.h +0 -0
  180. /package/lib/clang/{16 → 17}/include/ppc_wrappers/tmmintrin.h +0 -0
  181. /package/lib/clang/{16 → 17}/include/ppc_wrappers/x86gprintrin.h +0 -0
  182. /package/lib/clang/{16 → 17}/include/ppc_wrappers/x86intrin.h +0 -0
  183. /package/lib/clang/{16 → 17}/include/ppc_wrappers/xmmintrin.h +0 -0
  184. /package/lib/clang/{16 → 17}/include/prfchiintrin.h +0 -0
  185. /package/lib/clang/{16 → 17}/include/prfchwintrin.h +0 -0
  186. /package/lib/clang/{16 → 17}/include/ptwriteintrin.h +0 -0
  187. /package/lib/clang/{16 → 17}/include/raointintrin.h +0 -0
  188. /package/lib/clang/{16 → 17}/include/rdpruintrin.h +0 -0
  189. /package/lib/clang/{16 → 17}/include/rtmintrin.h +0 -0
  190. /package/lib/clang/{16 → 17}/include/s390intrin.h +0 -0
  191. /package/lib/clang/{16 → 17}/include/serializeintrin.h +0 -0
  192. /package/lib/clang/{16 → 17}/include/sgxintrin.h +0 -0
  193. /package/lib/clang/{16 → 17}/include/smmintrin.h +0 -0
  194. /package/lib/clang/{16 → 17}/include/stdarg.h +0 -0
  195. /package/lib/clang/{16 → 17}/include/stdbool.h +0 -0
  196. /package/lib/clang/{16 → 17}/include/stdint.h +0 -0
  197. /package/lib/clang/{16 → 17}/include/stdnoreturn.h +0 -0
  198. /package/lib/clang/{16 → 17}/include/tbmintrin.h +0 -0
  199. /package/lib/clang/{16 → 17}/include/tgmath.h +0 -0
  200. /package/lib/clang/{16 → 17}/include/tmmintrin.h +0 -0
  201. /package/lib/clang/{16 → 17}/include/tsxldtrkintrin.h +0 -0
  202. /package/lib/clang/{16 → 17}/include/uintrintrin.h +0 -0
  203. /package/lib/clang/{16 → 17}/include/unwind.h +0 -0
  204. /package/lib/clang/{16 → 17}/include/vadefs.h +0 -0
  205. /package/lib/clang/{16 → 17}/include/vaesintrin.h +0 -0
  206. /package/lib/clang/{16 → 17}/include/varargs.h +0 -0
  207. /package/lib/clang/{16 → 17}/include/vecintrin.h +0 -0
  208. /package/lib/clang/{16 → 17}/include/velintrin.h +0 -0
  209. /package/lib/clang/{16 → 17}/include/velintrin_approx.h +0 -0
  210. /package/lib/clang/{16 → 17}/include/velintrin_gen.h +0 -0
  211. /package/lib/clang/{16 → 17}/include/vpclmulqdqintrin.h +0 -0
  212. /package/lib/clang/{16 → 17}/include/waitpkgintrin.h +0 -0
  213. /package/lib/clang/{16 → 17}/include/wbnoinvdintrin.h +0 -0
  214. /package/lib/clang/{16 → 17}/include/wmmintrin.h +0 -0
  215. /package/lib/clang/{16 → 17}/include/x86gprintrin.h +0 -0
  216. /package/lib/clang/{16 → 17}/include/x86intrin.h +0 -0
  217. /package/lib/clang/{16 → 17}/include/xmmintrin.h +0 -0
  218. /package/lib/clang/{16 → 17}/include/xopintrin.h +0 -0
  219. /package/lib/clang/{16 → 17}/include/xsaveintrin.h +0 -0
  220. /package/lib/clang/{16 → 17}/include/xsaveoptintrin.h +0 -0
  221. /package/lib/clang/{16 → 17}/include/xsavesintrin.h +0 -0
  222. /package/lib/clang/{16 → 17}/include/xtestintrin.h +0 -0
@@ -3202,71 +3202,79 @@ static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
3202
3202
  // the XL-compatible signatures are used for those functions.
3203
3203
  #ifdef __XL_COMPAT_ALTIVEC__
3204
3204
  #define vec_ctf(__a, __b) \
3205
- _Generic( \
3206
- (__a), vector int \
3207
- : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)), \
3208
- vector unsigned int \
3209
- : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
3210
- (__b)), \
3211
- vector unsigned long long \
3212
- : (vector float)(__builtin_vsx_xvcvuxdsp( \
3213
- (vector unsigned long long)(__a)) * \
3214
- (vector float)(vector unsigned)((0x7f - (__b)) << 23)), \
3215
- vector signed long long \
3216
- : (vector float)(__builtin_vsx_xvcvsxdsp( \
3217
- (vector signed long long)(__a)) * \
3218
- (vector float)(vector unsigned)((0x7f - (__b)) << 23)))
3205
+ _Generic((__a), \
3206
+ vector int: (vector float)__builtin_altivec_vcfsx((vector int)(__a), \
3207
+ ((__b)&0x1F)), \
3208
+ vector unsigned int: (vector float)__builtin_altivec_vcfux( \
3209
+ (vector unsigned int)(__a), ((__b)&0x1F)), \
3210
+ vector unsigned long long: ( \
3211
+ vector float)(__builtin_vsx_xvcvuxdsp( \
3212
+ (vector unsigned long long)(__a)) * \
3213
+ (vector float)(vector unsigned)((0x7f - \
3214
+ ((__b)&0x1F)) \
3215
+ << 23)), \
3216
+ vector signed long long: ( \
3217
+ vector float)(__builtin_vsx_xvcvsxdsp( \
3218
+ (vector signed long long)(__a)) * \
3219
+ (vector float)(vector unsigned)((0x7f - \
3220
+ ((__b)&0x1F)) \
3221
+ << 23)))
3219
3222
  #else // __XL_COMPAT_ALTIVEC__
3220
- #define vec_ctf(__a, __b) \
3221
- _Generic( \
3222
- (__a), vector int \
3223
- : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)), \
3224
- vector unsigned int \
3225
- : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
3226
- (__b)), \
3227
- vector unsigned long long \
3228
- : (vector float)(__builtin_convertvector( \
3229
- (vector unsigned long long)(__a), vector double) * \
3230
- (vector double)(vector unsigned long long)((0x3ffULL - \
3231
- (__b)) \
3232
- << 52)), \
3233
- vector signed long long \
3234
- : (vector float)(__builtin_convertvector((vector signed long long)(__a), \
3235
- vector double) * \
3236
- (vector double)(vector unsigned long long)((0x3ffULL - \
3237
- (__b)) \
3238
- << 52)))
3223
+ #define vec_ctf(__a, __b) \
3224
+ _Generic( \
3225
+ (__a), \
3226
+ vector int: (vector float)__builtin_altivec_vcfsx((vector int)(__a), \
3227
+ ((__b)&0x1F)), \
3228
+ vector unsigned int: (vector float)__builtin_altivec_vcfux( \
3229
+ (vector unsigned int)(__a), ((__b)&0x1F)), \
3230
+ vector unsigned long long: ( \
3231
+ vector float)(__builtin_convertvector( \
3232
+ (vector unsigned long long)(__a), vector double) * \
3233
+ (vector double)(vector unsigned long long)((0x3ffULL - \
3234
+ ((__b)&0x1F)) \
3235
+ << 52)), \
3236
+ vector signed long long: ( \
3237
+ vector float)(__builtin_convertvector( \
3238
+ (vector signed long long)(__a), vector double) * \
3239
+ (vector double)(vector unsigned long long)((0x3ffULL - \
3240
+ ((__b)&0x1F)) \
3241
+ << 52)))
3239
3242
  #endif // __XL_COMPAT_ALTIVEC__
3240
3243
  #else
3241
3244
  #define vec_ctf(__a, __b) \
3242
- _Generic((__a), vector int \
3243
- : (vector float)__builtin_altivec_vcfsx((vector int)(__a), (__b)), \
3244
- vector unsigned int \
3245
- : (vector float)__builtin_altivec_vcfux((vector unsigned int)(__a), \
3246
- (__b)))
3245
+ _Generic((__a), \
3246
+ vector int: (vector float)__builtin_altivec_vcfsx((vector int)(__a), \
3247
+ ((__b)&0x1F)), \
3248
+ vector unsigned int: (vector float)__builtin_altivec_vcfux( \
3249
+ (vector unsigned int)(__a), ((__b)&0x1F)))
3247
3250
  #endif
3248
3251
 
3249
3252
  /* vec_ctd */
3250
3253
  #ifdef __VSX__
3251
3254
  #define vec_ctd(__a, __b) \
3252
- _Generic((__a), vector signed int \
3253
- : (vec_doublee((vector signed int)(__a)) * \
3254
- (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \
3255
- << 52)), \
3256
- vector unsigned int \
3257
- : (vec_doublee((vector unsigned int)(__a)) * \
3258
- (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \
3259
- << 52)), \
3260
- vector unsigned long long \
3261
- : (__builtin_convertvector((vector unsigned long long)(__a), \
3262
- vector double) * \
3263
- (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \
3264
- << 52)), \
3265
- vector signed long long \
3266
- : (__builtin_convertvector((vector signed long long)(__a), \
3267
- vector double) * \
3268
- (vector double)(vector unsigned long long)((0x3ffULL - (__b)) \
3269
- << 52)))
3255
+ _Generic((__a), \
3256
+ vector signed int: ( \
3257
+ vec_doublee((vector signed int)(__a)) * \
3258
+ (vector double)(vector unsigned long long)((0x3ffULL - \
3259
+ ((__b)&0x1F)) \
3260
+ << 52)), \
3261
+ vector unsigned int: ( \
3262
+ vec_doublee((vector unsigned int)(__a)) * \
3263
+ (vector double)(vector unsigned long long)((0x3ffULL - \
3264
+ ((__b)&0x1F)) \
3265
+ << 52)), \
3266
+ vector unsigned long long: ( \
3267
+ __builtin_convertvector((vector unsigned long long)(__a), \
3268
+ vector double) * \
3269
+ (vector double)(vector unsigned long long)((0x3ffULL - \
3270
+ ((__b)&0x1F)) \
3271
+ << 52)), \
3272
+ vector signed long long: ( \
3273
+ __builtin_convertvector((vector signed long long)(__a), \
3274
+ vector double) * \
3275
+ (vector double)(vector unsigned long long)((0x3ffULL - \
3276
+ ((__b)&0x1F)) \
3277
+ << 52)))
3270
3278
  #endif // __VSX__
3271
3279
 
3272
3280
  /* vec_vcfsx */
@@ -3281,27 +3289,27 @@ static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
3281
3289
  #ifdef __VSX__
3282
3290
  #ifdef __XL_COMPAT_ALTIVEC__
3283
3291
  #define vec_cts(__a, __b) \
3284
- _Generic((__a), vector float \
3285
- : (vector signed int)__builtin_altivec_vctsxs((vector float)(__a), \
3286
- (__b)), \
3287
- vector double \
3288
- : __extension__({ \
3292
+ _Generic((__a), \
3293
+ vector float: (vector signed int)__builtin_altivec_vctsxs( \
3294
+ (vector float)(__a), ((__b)&0x1F)), \
3295
+ vector double: __extension__({ \
3289
3296
  vector double __ret = \
3290
3297
  (vector double)(__a) * \
3291
- (vector double)(vector unsigned long long)((0x3ffULL + (__b)) \
3298
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3299
+ ((__b)&0x1F)) \
3292
3300
  << 52); \
3293
3301
  (vector signed long long)__builtin_vsx_xvcvdpsxws(__ret); \
3294
3302
  }))
3295
3303
  #else // __XL_COMPAT_ALTIVEC__
3296
3304
  #define vec_cts(__a, __b) \
3297
- _Generic((__a), vector float \
3298
- : (vector signed int)__builtin_altivec_vctsxs((vector float)(__a), \
3299
- (__b)), \
3300
- vector double \
3301
- : __extension__({ \
3305
+ _Generic((__a), \
3306
+ vector float: (vector signed int)__builtin_altivec_vctsxs( \
3307
+ (vector float)(__a), ((__b)&0x1F)), \
3308
+ vector double: __extension__({ \
3302
3309
  vector double __ret = \
3303
3310
  (vector double)(__a) * \
3304
- (vector double)(vector unsigned long long)((0x3ffULL + (__b)) \
3311
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3312
+ ((__b)&0x1F)) \
3305
3313
  << 52); \
3306
3314
  (vector signed long long)__builtin_convertvector( \
3307
3315
  __ret, vector signed long long); \
@@ -3320,27 +3328,27 @@ static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
3320
3328
  #ifdef __VSX__
3321
3329
  #ifdef __XL_COMPAT_ALTIVEC__
3322
3330
  #define vec_ctu(__a, __b) \
3323
- _Generic((__a), vector float \
3324
- : (vector unsigned int)__builtin_altivec_vctuxs( \
3325
- (vector float)(__a), (__b)), \
3326
- vector double \
3327
- : __extension__({ \
3331
+ _Generic((__a), \
3332
+ vector float: (vector unsigned int)__builtin_altivec_vctuxs( \
3333
+ (vector float)(__a), ((__b)&0x1F)), \
3334
+ vector double: __extension__({ \
3328
3335
  vector double __ret = \
3329
3336
  (vector double)(__a) * \
3330
- (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3337
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3338
+ ((__b)&0x1F)) \
3331
3339
  << 52); \
3332
3340
  (vector unsigned long long)__builtin_vsx_xvcvdpuxws(__ret); \
3333
3341
  }))
3334
3342
  #else // __XL_COMPAT_ALTIVEC__
3335
3343
  #define vec_ctu(__a, __b) \
3336
- _Generic((__a), vector float \
3337
- : (vector unsigned int)__builtin_altivec_vctuxs( \
3338
- (vector float)(__a), (__b)), \
3339
- vector double \
3340
- : __extension__({ \
3344
+ _Generic((__a), \
3345
+ vector float: (vector unsigned int)__builtin_altivec_vctuxs( \
3346
+ (vector float)(__a), ((__b)&0x1F)), \
3347
+ vector double: __extension__({ \
3341
3348
  vector double __ret = \
3342
3349
  (vector double)(__a) * \
3343
- (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3350
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3351
+ ((__b)&0x1F)) \
3344
3352
  << 52); \
3345
3353
  (vector unsigned long long)__builtin_convertvector( \
3346
3354
  __ret, vector unsigned long long); \
@@ -3355,60 +3363,62 @@ static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
3355
3363
 
3356
3364
  #ifdef __VSX__
3357
3365
  #define vec_ctsl(__a, __b) \
3358
- _Generic((__a), vector float \
3359
- : __extension__({ \
3360
- vector float __ret = \
3361
- (vector float)(__a) * \
3362
- (vector float)(vector unsigned)((0x7f + (__b)) << 23); \
3363
- __builtin_vsx_xvcvspsxds( \
3364
- __builtin_vsx_xxsldwi(__ret, __ret, 1)); \
3365
- }), \
3366
- vector double \
3367
- : __extension__({ \
3368
- vector double __ret = \
3369
- (vector double)(__a) * \
3370
- (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3371
- << 52); \
3372
- __builtin_convertvector(__ret, vector signed long long); \
3373
- }))
3366
+ _Generic( \
3367
+ (__a), vector float \
3368
+ : __extension__({ \
3369
+ vector float __ret = \
3370
+ (vector float)(__a) * \
3371
+ (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) << 23); \
3372
+ __builtin_vsx_xvcvspsxds(__builtin_vsx_xxsldwi(__ret, __ret, 1)); \
3373
+ }), \
3374
+ vector double \
3375
+ : __extension__({ \
3376
+ vector double __ret = \
3377
+ (vector double)(__a) * \
3378
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3379
+ ((__b)&0x1F)) \
3380
+ << 52); \
3381
+ __builtin_convertvector(__ret, vector signed long long); \
3382
+ }))
3374
3383
 
3375
3384
  /* vec_ctul */
3376
3385
 
3377
3386
  #define vec_ctul(__a, __b) \
3378
- _Generic((__a), vector float \
3379
- : __extension__({ \
3380
- vector float __ret = \
3381
- (vector float)(__a) * \
3382
- (vector float)(vector unsigned)((0x7f + (__b)) << 23); \
3383
- __builtin_vsx_xvcvspuxds( \
3384
- __builtin_vsx_xxsldwi(__ret, __ret, 1)); \
3385
- }), \
3386
- vector double \
3387
- : __extension__({ \
3388
- vector double __ret = \
3389
- (vector double)(__a) * \
3390
- (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3391
- << 52); \
3392
- __builtin_convertvector(__ret, vector unsigned long long); \
3393
- }))
3387
+ _Generic( \
3388
+ (__a), vector float \
3389
+ : __extension__({ \
3390
+ vector float __ret = \
3391
+ (vector float)(__a) * \
3392
+ (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) << 23); \
3393
+ __builtin_vsx_xvcvspuxds(__builtin_vsx_xxsldwi(__ret, __ret, 1)); \
3394
+ }), \
3395
+ vector double \
3396
+ : __extension__({ \
3397
+ vector double __ret = \
3398
+ (vector double)(__a) * \
3399
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3400
+ ((__b)&0x1F)) \
3401
+ << 52); \
3402
+ __builtin_convertvector(__ret, vector unsigned long long); \
3403
+ }))
3394
3404
  #endif
3395
3405
  #else // __LITTLE_ENDIAN__
3396
3406
  /* vec_ctsl */
3397
3407
 
3398
3408
  #ifdef __VSX__
3399
3409
  #define vec_ctsl(__a, __b) \
3400
- _Generic((__a), vector float \
3401
- : __extension__({ \
3402
- vector float __ret = \
3403
- (vector float)(__a) * \
3404
- (vector float)(vector unsigned)((0x7f + (__b)) << 23); \
3405
- __builtin_vsx_xvcvspsxds(__ret); \
3406
- }), \
3407
- vector double \
3408
- : __extension__({ \
3410
+ _Generic((__a), \
3411
+ vector float: __extension__({ \
3412
+ vector float __ret = \
3413
+ (vector float)(__a) * \
3414
+ (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) << 23); \
3415
+ __builtin_vsx_xvcvspsxds(__ret); \
3416
+ }), \
3417
+ vector double: __extension__({ \
3409
3418
  vector double __ret = \
3410
3419
  (vector double)(__a) * \
3411
- (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3420
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3421
+ ((__b)&0x1F)) \
3412
3422
  << 52); \
3413
3423
  __builtin_convertvector(__ret, vector signed long long); \
3414
3424
  }))
@@ -3420,14 +3430,16 @@ static __inline__ vector double __ATTRS_o_ai vec_cpsgn(vector double __a,
3420
3430
  : __extension__({ \
3421
3431
  vector float __ret = \
3422
3432
  (vector float)(__a) * \
3423
- (vector float)(vector unsigned)((0x7f + (__b)) << 23); \
3433
+ (vector float)(vector unsigned)((0x7f + ((__b)&0x1F)) \
3434
+ << 23); \
3424
3435
  __builtin_vsx_xvcvspuxds(__ret); \
3425
3436
  }), \
3426
3437
  vector double \
3427
3438
  : __extension__({ \
3428
3439
  vector double __ret = \
3429
3440
  (vector double)(__a) * \
3430
- (vector double)(vector unsigned long long)((0x3ffULL + __b) \
3441
+ (vector double)(vector unsigned long long)((0x3ffULL + \
3442
+ ((__b)&0x1F)) \
3431
3443
  << 52); \
3432
3444
  __builtin_convertvector(__ret, vector unsigned long long); \
3433
3445
  }))
@@ -0,0 +1,169 @@
1
+ /*===--------- amxcomplexintrin.h - AMXCOMPLEX intrinsics -*- C++ -*---------===
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 <amxcomplexintrin.h> directly; include <immintrin.h> instead."
12
+ #endif // __IMMINTRIN_H
13
+
14
+ #ifndef __AMX_COMPLEXINTRIN_H
15
+ #define __AMX_COMPLEXINTRIN_H
16
+ #ifdef __x86_64__
17
+
18
+ #define __DEFAULT_FN_ATTRS_COMPLEX \
19
+ __attribute__((__always_inline__, __nodebug__, __target__("amx-complex")))
20
+
21
+ /// Perform matrix multiplication of two tiles containing complex elements and
22
+ /// accumulate the results into a packed single precision tile. Each dword
23
+ /// element in input tiles \a a and \a b is interpreted as a complex number
24
+ /// with FP16 real part and FP16 imaginary part.
25
+ /// Calculates the imaginary part of the result. For each possible combination
26
+ /// of (row of \a a, column of \a b), it performs a set of multiplication
27
+ /// and accumulations on all corresponding complex numbers (one from \a a
28
+ /// and one from \a b). The imaginary part of the \a a element is multiplied
29
+ /// with the real part of the corresponding \a b element, and the real part
30
+ /// of the \a a element is multiplied with the imaginary part of the
31
+ /// corresponding \a b elements. The two accumulated results are added, and
32
+ /// then accumulated into the corresponding row and column of \a dst.
33
+ ///
34
+ /// \headerfile <x86intrin.h>
35
+ ///
36
+ /// \code
37
+ /// void _tile_cmmimfp16ps(__tile dst, __tile a, __tile b);
38
+ /// \endcode
39
+ ///
40
+ /// \code{.operation}
41
+ /// FOR m := 0 TO dst.rows - 1
42
+ /// tmp := dst.row[m]
43
+ /// FOR k := 0 TO (a.colsb / 4) - 1
44
+ /// FOR n := 0 TO (dst.colsb / 4) - 1
45
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+1])
46
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+0])
47
+ /// ENDFOR
48
+ /// ENDFOR
49
+ /// write_row_and_zero(dst, m, tmp, dst.colsb)
50
+ /// ENDFOR
51
+ /// zero_upper_rows(dst, dst.rows)
52
+ /// zero_tileconfig_start()
53
+ /// \endcode
54
+ ///
55
+ /// This intrinsic corresponds to the \c TCMMIMFP16PS instruction.
56
+ ///
57
+ /// \param dst
58
+ /// The destination tile. Max size is 1024 Bytes.
59
+ /// \param a
60
+ /// The 1st source tile. Max size is 1024 Bytes.
61
+ /// \param b
62
+ /// The 2nd source tile. Max size is 1024 Bytes.
63
+ #define _tile_cmmimfp16ps(dst, a, b) __builtin_ia32_tcmmimfp16ps(dst, a, b)
64
+
65
+ /// Perform matrix multiplication of two tiles containing complex elements and
66
+ /// accumulate the results into a packed single precision tile. Each dword
67
+ /// element in input tiles \a a and \a b is interpreted as a complex number
68
+ /// with FP16 real part and FP16 imaginary part.
69
+ /// Calculates the real part of the result. For each possible combination
70
+ /// of (row of \a a, column of \a b), it performs a set of multiplication
71
+ /// and accumulations on all corresponding complex numbers (one from \a a
72
+ /// and one from \a b). The real part of the \a a element is multiplied
73
+ /// with the real part of the corresponding \a b element, and the negated
74
+ /// imaginary part of the \a a element is multiplied with the imaginary
75
+ /// part of the corresponding \a b elements. The two accumulated results
76
+ /// are added, and then accumulated into the corresponding row and column
77
+ /// of \a dst.
78
+ ///
79
+ /// \headerfile <x86intrin.h>
80
+ ///
81
+ /// \code
82
+ /// void _tile_cmmrlfp16ps(__tile dst, __tile a, __tile b);
83
+ /// \endcode
84
+ ///
85
+ /// \code{.operation}
86
+ /// FOR m := 0 TO dst.rows - 1
87
+ /// tmp := dst.row[m]
88
+ /// FOR k := 0 TO (a.colsb / 4) - 1
89
+ /// FOR n := 0 TO (dst.colsb / 4) - 1
90
+ /// tmp.fp32[n] += FP32(a.row[m].fp16[2*k+0]) * FP32(b.row[k].fp16[2*n+0])
91
+ /// tmp.fp32[n] += FP32(-a.row[m].fp16[2*k+1]) * FP32(b.row[k].fp16[2*n+1])
92
+ /// ENDFOR
93
+ /// ENDFOR
94
+ /// write_row_and_zero(dst, m, tmp, dst.colsb)
95
+ /// ENDFOR
96
+ /// zero_upper_rows(dst, dst.rows)
97
+ /// zero_tileconfig_start()
98
+ /// \endcode
99
+ ///
100
+ /// This intrinsic corresponds to the \c TCMMIMFP16PS instruction.
101
+ ///
102
+ /// \param dst
103
+ /// The destination tile. Max size is 1024 Bytes.
104
+ /// \param a
105
+ /// The 1st source tile. Max size is 1024 Bytes.
106
+ /// \param b
107
+ /// The 2nd source tile. Max size is 1024 Bytes.
108
+ #define _tile_cmmrlfp16ps(dst, a, b) __builtin_ia32_tcmmrlfp16ps(dst, a, b)
109
+
110
+ static __inline__ _tile1024i __DEFAULT_FN_ATTRS_COMPLEX
111
+ _tile_cmmimfp16ps_internal(unsigned short m, unsigned short n, unsigned short k,
112
+ _tile1024i dst, _tile1024i src1, _tile1024i src2) {
113
+ return __builtin_ia32_tcmmimfp16ps_internal(m, n, k, dst, src1, src2);
114
+ }
115
+
116
+ static __inline__ _tile1024i __DEFAULT_FN_ATTRS_COMPLEX
117
+ _tile_cmmrlfp16ps_internal(unsigned short m, unsigned short n, unsigned short k,
118
+ _tile1024i dst, _tile1024i src1, _tile1024i src2) {
119
+ return __builtin_ia32_tcmmrlfp16ps_internal(m, n, k, dst, src1, src2);
120
+ }
121
+
122
+ /// Perform matrix multiplication of two tiles containing complex elements and
123
+ /// accumulate the results into a packed single precision tile. Each dword
124
+ /// element in input tiles src0 and src1 is interpreted as a complex number with
125
+ /// FP16 real part and FP16 imaginary part.
126
+ /// This function calculates the imaginary part of the result.
127
+ ///
128
+ /// \headerfile <immintrin.h>
129
+ ///
130
+ /// This intrinsic corresponds to the <c> TCMMIMFP16PS </c> instruction.
131
+ ///
132
+ /// \param dst
133
+ /// The destination tile. Max size is 1024 Bytes.
134
+ /// \param src0
135
+ /// The 1st source tile. Max size is 1024 Bytes.
136
+ /// \param src1
137
+ /// The 2nd source tile. Max size is 1024 Bytes.
138
+ __DEFAULT_FN_ATTRS_COMPLEX
139
+ static void __tile_cmmimfp16ps(__tile1024i *dst, __tile1024i src0,
140
+ __tile1024i src1) {
141
+ dst->tile = _tile_cmmimfp16ps_internal(src0.row, src1.col, src0.col,
142
+ dst->tile, src0.tile, src1.tile);
143
+ }
144
+
145
+ /// Perform matrix multiplication of two tiles containing complex elements and
146
+ /// accumulate the results into a packed single precision tile. Each dword
147
+ /// element in input tiles src0 and src1 is interpreted as a complex number with
148
+ /// FP16 real part and FP16 imaginary part.
149
+ /// This function calculates the real part of the result.
150
+ ///
151
+ /// \headerfile <immintrin.h>
152
+ ///
153
+ /// This intrinsic corresponds to the <c> TCMMRLFP16PS </c> instruction.
154
+ ///
155
+ /// \param dst
156
+ /// The destination tile. Max size is 1024 Bytes.
157
+ /// \param src0
158
+ /// The 1st source tile. Max size is 1024 Bytes.
159
+ /// \param src1
160
+ /// The 2nd source tile. Max size is 1024 Bytes.
161
+ __DEFAULT_FN_ATTRS_COMPLEX
162
+ static void __tile_cmmrlfp16ps(__tile1024i *dst, __tile1024i src0,
163
+ __tile1024i src1) {
164
+ dst->tile = _tile_cmmrlfp16ps_internal(src0.row, src1.col, src0.col,
165
+ dst->tile, src0.tile, src1.tile);
166
+ }
167
+
168
+ #endif // __x86_64__
169
+ #endif // __AMX_COMPLEXINTRIN_H
@@ -138,28 +138,32 @@ __rorl(unsigned long __x, uint32_t __y) {
138
138
 
139
139
 
140
140
  /* CLZ */
141
- static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
141
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
142
142
  __clz(uint32_t __t) {
143
- return (uint32_t)__builtin_clz(__t);
143
+ return __builtin_arm_clz(__t);
144
144
  }
145
145
 
146
- static __inline__ unsigned long __attribute__((__always_inline__, __nodebug__))
146
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
147
147
  __clzl(unsigned long __t) {
148
- return (unsigned long)__builtin_clzl(__t);
148
+ #if __SIZEOF_LONG__ == 4
149
+ return __builtin_arm_clz(__t);
150
+ #else
151
+ return __builtin_arm_clz64(__t);
152
+ #endif
149
153
  }
150
154
 
151
- static __inline__ uint64_t __attribute__((__always_inline__, __nodebug__))
155
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
152
156
  __clzll(uint64_t __t) {
153
- return (uint64_t)__builtin_clzll(__t);
157
+ return __builtin_arm_clz64(__t);
154
158
  }
155
159
 
156
160
  /* CLS */
157
- static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
161
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
158
162
  __cls(uint32_t __t) {
159
163
  return __builtin_arm_cls(__t);
160
164
  }
161
165
 
162
- static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
166
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
163
167
  __clsl(unsigned long __t) {
164
168
  #if __SIZEOF_LONG__ == 4
165
169
  return __builtin_arm_cls(__t);
@@ -168,7 +172,7 @@ __clsl(unsigned long __t) {
168
172
  #endif
169
173
  }
170
174
 
171
- static __inline__ uint32_t __attribute__((__always_inline__, __nodebug__))
175
+ static __inline__ unsigned int __attribute__((__always_inline__, __nodebug__))
172
176
  __clsll(uint64_t __t) {
173
177
  return __builtin_arm_cls64(__t);
174
178
  }