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

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 (197) hide show
  1. package/README.md +2 -2
  2. package/bin/clang-tidy.exe +2 -2
  3. package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_texture_intrinsics.h +2 -0
  4. package/lib/clang/{15.0.2 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
  5. package/lib/clang/{15.0.2 → 16}/include/__clang_hip_math.h +10 -13
  6. package/lib/clang/{15.0.2 → 16}/include/__clang_hip_runtime_wrapper.h +1 -0
  7. package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
  8. package/lib/clang/{15.0.2 → 16}/include/altivec.h +14 -14
  9. package/lib/clang/16/include/amxfp16intrin.h +58 -0
  10. package/lib/clang/{15.0.2 → 16}/include/amxintrin.h +32 -0
  11. package/lib/clang/{15.0.2 → 16}/include/arm_acle.h +76 -75
  12. package/lib/clang/{15.0.2 → 16}/include/arm_fp16.h +1 -1
  13. package/lib/clang/{15.0.2 → 16}/include/arm_neon.h +26428 -26598
  14. package/lib/clang/{15.0.2 → 16}/include/arm_neon_sve_bridge.h +0 -2
  15. package/lib/clang/{15.0.2 → 16}/include/arm_sve.h +7784 -7936
  16. package/lib/clang/{15.0.2 → 16}/include/avx512bf16intrin.h +18 -15
  17. package/lib/clang/{15.0.2 → 16}/include/avx512fintrin.h +2 -2
  18. package/lib/clang/{15.0.2 → 16}/include/avx512fp16intrin.h +6 -9
  19. package/lib/clang/{15.0.2 → 16}/include/avx512ifmavlintrin.h +13 -27
  20. package/lib/clang/{15.0.2 → 16}/include/avx512vlbf16intrin.h +31 -38
  21. package/lib/clang/{15.0.2 → 16}/include/avx512vlbwintrin.h +352 -0
  22. package/lib/clang/{15.0.2 → 16}/include/avx512vlfp16intrin.h +3 -0
  23. package/lib/clang/16/include/avxifmaintrin.h +177 -0
  24. package/lib/clang/{15.0.2 → 16}/include/avxintrin.h +12 -2
  25. package/lib/clang/16/include/avxneconvertintrin.h +484 -0
  26. package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
  27. package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
  28. package/lib/clang/{15.0.2 → 16}/include/cpuid.h +11 -1
  29. package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
  30. package/lib/clang/{15.0.2 → 16}/include/emmintrin.h +11 -1
  31. package/lib/clang/{15.0.2 → 16}/include/float.h +17 -10
  32. package/lib/clang/{15.0.2 → 16}/include/gfniintrin.h +7 -5
  33. package/lib/clang/{15.0.2 → 16}/include/hlsl/hlsl_basic_types.h +3 -0
  34. package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +223 -0
  35. package/lib/clang/{15.0.2 → 16}/include/immintrin.h +41 -9
  36. package/lib/clang/16/include/larchintrin.h +234 -0
  37. package/lib/clang/{15.0.2 → 16}/include/limits.h +3 -2
  38. package/lib/clang/{15.0.2 → 16}/include/opencl-c-base.h +19 -0
  39. package/lib/clang/{15.0.2 → 16}/include/opencl-c.h +175 -145
  40. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/emmintrin.h +2 -2
  41. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/mm_malloc.h +1 -1
  42. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/mmintrin.h +2 -2
  43. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/pmmintrin.h +2 -2
  44. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/smmintrin.h +2 -2
  45. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/tmmintrin.h +2 -2
  46. package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/xmmintrin.h +2 -2
  47. package/lib/clang/16/include/prfchiintrin.h +61 -0
  48. package/lib/clang/16/include/raointintrin.h +203 -0
  49. package/lib/clang/{15.0.2 → 16}/include/riscv_vector.h +62 -53
  50. package/lib/clang/{15.0.2 → 16}/include/smmintrin.h +2 -2
  51. package/lib/clang/{15.0.2 → 16}/include/stdarg.h +23 -7
  52. package/lib/clang/{15.0.2 → 16}/include/stdatomic.h +6 -3
  53. package/lib/clang/{15.0.2 → 16}/include/stdbool.h +2 -2
  54. package/lib/clang/{15.0.2 → 16}/include/stddef.h +8 -1
  55. package/lib/clang/{15.0.2 → 16}/include/stdint.h +158 -40
  56. package/lib/clang/{15.0.2 → 16}/include/stdnoreturn.h +1 -1
  57. package/lib/clang/{15.0.2 → 16}/include/unwind.h +2 -1
  58. package/lib/clang/{15.0.2 → 16}/include/velintrin.h +1 -1
  59. package/lib/clang/{15.0.2 → 16}/include/x86gprintrin.h +19 -7
  60. package/lib/clang/{15.0.2 → 16}/include/xmmintrin.h +1 -2
  61. package/package.json +6 -6
  62. package/lib/clang/15.0.2/include/hlsl/hlsl_intrinsics.h +0 -15
  63. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
  64. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_cmath.h +0 -0
  65. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_complex_builtins.h +0 -0
  66. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_device_functions.h +0 -0
  67. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_intrinsics.h +0 -0
  68. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_libdevice_declares.h +0 -0
  69. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_math.h +0 -0
  70. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
  71. /package/lib/clang/{15.0.2 → 16}/include/__clang_cuda_runtime_wrapper.h +0 -0
  72. /package/lib/clang/{15.0.2 → 16}/include/__clang_hip_cmath.h +0 -0
  73. /package/lib/clang/{15.0.2 → 16}/include/__stddef_max_align_t.h +0 -0
  74. /package/lib/clang/{15.0.2 → 16}/include/__wmmintrin_aes.h +0 -0
  75. /package/lib/clang/{15.0.2 → 16}/include/__wmmintrin_pclmul.h +0 -0
  76. /package/lib/clang/{15.0.2 → 16}/include/adxintrin.h +0 -0
  77. /package/lib/clang/{15.0.2 → 16}/include/ammintrin.h +0 -0
  78. /package/lib/clang/{15.0.2 → 16}/include/arm64intr.h +0 -0
  79. /package/lib/clang/{15.0.2 → 16}/include/arm_bf16.h +0 -0
  80. /package/lib/clang/{15.0.2 → 16}/include/arm_cde.h +0 -0
  81. /package/lib/clang/{15.0.2 → 16}/include/arm_cmse.h +0 -0
  82. /package/lib/clang/{15.0.2 → 16}/include/arm_mve.h +0 -0
  83. /package/lib/clang/{15.0.2 → 16}/include/armintr.h +0 -0
  84. /package/lib/clang/{15.0.2 → 16}/include/avx2intrin.h +0 -0
  85. /package/lib/clang/{15.0.2 → 16}/include/avx512bitalgintrin.h +0 -0
  86. /package/lib/clang/{15.0.2 → 16}/include/avx512bwintrin.h +0 -0
  87. /package/lib/clang/{15.0.2 → 16}/include/avx512cdintrin.h +0 -0
  88. /package/lib/clang/{15.0.2 → 16}/include/avx512dqintrin.h +0 -0
  89. /package/lib/clang/{15.0.2 → 16}/include/avx512erintrin.h +0 -0
  90. /package/lib/clang/{15.0.2 → 16}/include/avx512ifmaintrin.h +0 -0
  91. /package/lib/clang/{15.0.2 → 16}/include/avx512pfintrin.h +0 -0
  92. /package/lib/clang/{15.0.2 → 16}/include/avx512vbmi2intrin.h +0 -0
  93. /package/lib/clang/{15.0.2 → 16}/include/avx512vbmiintrin.h +0 -0
  94. /package/lib/clang/{15.0.2 → 16}/include/avx512vbmivlintrin.h +0 -0
  95. /package/lib/clang/{15.0.2 → 16}/include/avx512vlbitalgintrin.h +0 -0
  96. /package/lib/clang/{15.0.2 → 16}/include/avx512vlcdintrin.h +0 -0
  97. /package/lib/clang/{15.0.2 → 16}/include/avx512vldqintrin.h +0 -0
  98. /package/lib/clang/{15.0.2 → 16}/include/avx512vlintrin.h +0 -0
  99. /package/lib/clang/{15.0.2 → 16}/include/avx512vlvbmi2intrin.h +0 -0
  100. /package/lib/clang/{15.0.2 → 16}/include/avx512vlvnniintrin.h +0 -0
  101. /package/lib/clang/{15.0.2 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
  102. /package/lib/clang/{15.0.2 → 16}/include/avx512vnniintrin.h +0 -0
  103. /package/lib/clang/{15.0.2 → 16}/include/avx512vp2intersectintrin.h +0 -0
  104. /package/lib/clang/{15.0.2 → 16}/include/avx512vpopcntdqintrin.h +0 -0
  105. /package/lib/clang/{15.0.2 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
  106. /package/lib/clang/{15.0.2 → 16}/include/avxvnniintrin.h +0 -0
  107. /package/lib/clang/{15.0.2 → 16}/include/bmi2intrin.h +0 -0
  108. /package/lib/clang/{15.0.2 → 16}/include/bmiintrin.h +0 -0
  109. /package/lib/clang/{15.0.2 → 16}/include/builtins.h +0 -0
  110. /package/lib/clang/{15.0.2 → 16}/include/cet.h +0 -0
  111. /package/lib/clang/{15.0.2 → 16}/include/cetintrin.h +0 -0
  112. /package/lib/clang/{15.0.2 → 16}/include/cldemoteintrin.h +0 -0
  113. /package/lib/clang/{15.0.2 → 16}/include/clflushoptintrin.h +0 -0
  114. /package/lib/clang/{15.0.2 → 16}/include/clwbintrin.h +0 -0
  115. /package/lib/clang/{15.0.2 → 16}/include/clzerointrin.h +0 -0
  116. /package/lib/clang/{15.0.2 → 16}/include/crc32intrin.h +0 -0
  117. /package/lib/clang/{15.0.2 → 16}/include/cuda_wrappers/algorithm +0 -0
  118. /package/lib/clang/{15.0.2 → 16}/include/cuda_wrappers/complex +0 -0
  119. /package/lib/clang/{15.0.2 → 16}/include/cuda_wrappers/new +0 -0
  120. /package/lib/clang/{15.0.2 → 16}/include/enqcmdintrin.h +0 -0
  121. /package/lib/clang/{15.0.2 → 16}/include/f16cintrin.h +0 -0
  122. /package/lib/clang/{15.0.2 → 16}/include/fma4intrin.h +0 -0
  123. /package/lib/clang/{15.0.2 → 16}/include/fmaintrin.h +0 -0
  124. /package/lib/clang/{15.0.2 → 16}/include/fxsrintrin.h +0 -0
  125. /package/lib/clang/{15.0.2 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
  126. /package/lib/clang/{15.0.2 → 16}/include/hexagon_protos.h +0 -0
  127. /package/lib/clang/{15.0.2 → 16}/include/hexagon_types.h +0 -0
  128. /package/lib/clang/{15.0.2 → 16}/include/hlsl.h +0 -0
  129. /package/lib/clang/{15.0.2 → 16}/include/hresetintrin.h +0 -0
  130. /package/lib/clang/{15.0.2 → 16}/include/htmintrin.h +0 -0
  131. /package/lib/clang/{15.0.2 → 16}/include/htmxlintrin.h +0 -0
  132. /package/lib/clang/{15.0.2 → 16}/include/hvx_hexagon_protos.h +0 -0
  133. /package/lib/clang/{15.0.2 → 16}/include/ia32intrin.h +0 -0
  134. /package/lib/clang/{15.0.2 → 16}/include/intrin.h +0 -0
  135. /package/lib/clang/{15.0.2 → 16}/include/inttypes.h +0 -0
  136. /package/lib/clang/{15.0.2 → 16}/include/invpcidintrin.h +0 -0
  137. /package/lib/clang/{15.0.2 → 16}/include/iso646.h +0 -0
  138. /package/lib/clang/{15.0.2 → 16}/include/keylockerintrin.h +0 -0
  139. /package/lib/clang/{15.0.2 → 16}/include/lwpintrin.h +0 -0
  140. /package/lib/clang/{15.0.2 → 16}/include/lzcntintrin.h +0 -0
  141. /package/lib/clang/{15.0.2 → 16}/include/mm3dnow.h +0 -0
  142. /package/lib/clang/{15.0.2 → 16}/include/mm_malloc.h +0 -0
  143. /package/lib/clang/{15.0.2 → 16}/include/mmintrin.h +0 -0
  144. /package/lib/clang/{15.0.2 → 16}/include/module.modulemap +0 -0
  145. /package/lib/clang/{15.0.2 → 16}/include/movdirintrin.h +0 -0
  146. /package/lib/clang/{15.0.2 → 16}/include/msa.h +0 -0
  147. /package/lib/clang/{15.0.2 → 16}/include/mwaitxintrin.h +0 -0
  148. /package/lib/clang/{15.0.2 → 16}/include/nmmintrin.h +0 -0
  149. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
  150. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/cmath +0 -0
  151. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/complex +0 -0
  152. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/complex.h +0 -0
  153. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
  154. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/math.h +0 -0
  155. /package/lib/clang/{15.0.2 → 16}/include/openmp_wrappers/new +0 -0
  156. /package/lib/clang/{15.0.2 → 16}/include/pconfigintrin.h +0 -0
  157. /package/lib/clang/{15.0.2 → 16}/include/pkuintrin.h +0 -0
  158. /package/lib/clang/{15.0.2 → 16}/include/pmmintrin.h +0 -0
  159. /package/lib/clang/{15.0.2 → 16}/include/popcntintrin.h +0 -0
  160. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/bmi2intrin.h +0 -0
  161. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/bmiintrin.h +0 -0
  162. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/immintrin.h +0 -0
  163. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/x86gprintrin.h +0 -0
  164. /package/lib/clang/{15.0.2 → 16}/include/ppc_wrappers/x86intrin.h +0 -0
  165. /package/lib/clang/{15.0.2 → 16}/include/prfchwintrin.h +0 -0
  166. /package/lib/clang/{15.0.2 → 16}/include/ptwriteintrin.h +0 -0
  167. /package/lib/clang/{15.0.2 → 16}/include/rdpruintrin.h +0 -0
  168. /package/lib/clang/{15.0.2 → 16}/include/rdseedintrin.h +0 -0
  169. /package/lib/clang/{15.0.2 → 16}/include/rtmintrin.h +0 -0
  170. /package/lib/clang/{15.0.2 → 16}/include/s390intrin.h +0 -0
  171. /package/lib/clang/{15.0.2 → 16}/include/serializeintrin.h +0 -0
  172. /package/lib/clang/{15.0.2 → 16}/include/sgxintrin.h +0 -0
  173. /package/lib/clang/{15.0.2 → 16}/include/shaintrin.h +0 -0
  174. /package/lib/clang/{15.0.2 → 16}/include/stdalign.h +0 -0
  175. /package/lib/clang/{15.0.2 → 16}/include/tbmintrin.h +0 -0
  176. /package/lib/clang/{15.0.2 → 16}/include/tgmath.h +0 -0
  177. /package/lib/clang/{15.0.2 → 16}/include/tmmintrin.h +0 -0
  178. /package/lib/clang/{15.0.2 → 16}/include/tsxldtrkintrin.h +0 -0
  179. /package/lib/clang/{15.0.2 → 16}/include/uintrintrin.h +0 -0
  180. /package/lib/clang/{15.0.2 → 16}/include/vadefs.h +0 -0
  181. /package/lib/clang/{15.0.2 → 16}/include/vaesintrin.h +0 -0
  182. /package/lib/clang/{15.0.2 → 16}/include/varargs.h +0 -0
  183. /package/lib/clang/{15.0.2 → 16}/include/vecintrin.h +0 -0
  184. /package/lib/clang/{15.0.2 → 16}/include/velintrin_approx.h +0 -0
  185. /package/lib/clang/{15.0.2 → 16}/include/velintrin_gen.h +0 -0
  186. /package/lib/clang/{15.0.2 → 16}/include/vpclmulqdqintrin.h +0 -0
  187. /package/lib/clang/{15.0.2 → 16}/include/waitpkgintrin.h +0 -0
  188. /package/lib/clang/{15.0.2 → 16}/include/wasm_simd128.h +0 -0
  189. /package/lib/clang/{15.0.2 → 16}/include/wbnoinvdintrin.h +0 -0
  190. /package/lib/clang/{15.0.2 → 16}/include/wmmintrin.h +0 -0
  191. /package/lib/clang/{15.0.2 → 16}/include/x86intrin.h +0 -0
  192. /package/lib/clang/{15.0.2 → 16}/include/xopintrin.h +0 -0
  193. /package/lib/clang/{15.0.2 → 16}/include/xsavecintrin.h +0 -0
  194. /package/lib/clang/{15.0.2 → 16}/include/xsaveintrin.h +0 -0
  195. /package/lib/clang/{15.0.2 → 16}/include/xsaveoptintrin.h +0 -0
  196. /package/lib/clang/{15.0.2 → 16}/include/xsavesintrin.h +0 -0
  197. /package/lib/clang/{15.0.2 → 16}/include/xtestintrin.h +0 -0
@@ -38,6 +38,16 @@ typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
38
38
  * appear in the interface though. */
39
39
  typedef signed char __v16qs __attribute__((__vector_size__(16)));
40
40
 
41
+ #ifdef __SSE2__
42
+ /* Both _Float16 and __bf16 require SSE2 being enabled. */
43
+ typedef _Float16 __v8hf __attribute__((__vector_size__(16), __aligned__(16)));
44
+ typedef _Float16 __m128h __attribute__((__vector_size__(16), __aligned__(16)));
45
+ typedef _Float16 __m128h_u __attribute__((__vector_size__(16), __aligned__(1)));
46
+
47
+ typedef __bf16 __v8bf __attribute__((__vector_size__(16), __aligned__(16)));
48
+ typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
49
+ #endif
50
+
41
51
  /* Define the default attributes for the functions in this file. */
42
52
  #define __DEFAULT_FN_ATTRS \
43
53
  __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \
@@ -1809,7 +1819,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setr_pd(double __w,
1809
1819
  /// \returns An initialized 128-bit floating-point vector of [2 x double] with
1810
1820
  /// all elements set to zero.
1811
1821
  static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_setzero_pd(void) {
1812
- return __extension__(__m128d){0, 0};
1822
+ return __extension__(__m128d){0.0, 0.0};
1813
1823
  }
1814
1824
 
1815
1825
  /// Constructs a 128-bit floating-point vector of [2 x double]. The lower
@@ -38,9 +38,10 @@
38
38
  # undef FLT_MANT_DIG
39
39
  # undef DBL_MANT_DIG
40
40
  # undef LDBL_MANT_DIG
41
- # if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__) || \
42
- __cplusplus >= 201103L || \
43
- (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
41
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
42
+ !defined(__STRICT_ANSI__) || \
43
+ (defined(__cplusplus) && __cplusplus >= 201103L) || \
44
+ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
44
45
  # undef DECIMAL_DIG
45
46
  # endif
46
47
  # undef FLT_DIG
@@ -67,9 +68,10 @@
67
68
  # undef FLT_MIN
68
69
  # undef DBL_MIN
69
70
  # undef LDBL_MIN
70
- # if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) || \
71
- __cplusplus >= 201703L || \
72
- (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
71
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
72
+ !defined(__STRICT_ANSI__) || \
73
+ (defined(__cplusplus) && __cplusplus >= 201703L) || \
74
+ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
73
75
  # undef FLT_TRUE_MIN
74
76
  # undef DBL_TRUE_MIN
75
77
  # undef LDBL_TRUE_MIN
@@ -84,7 +86,10 @@
84
86
 
85
87
  /* Characteristics of floating point types, C99 5.2.4.2.2 */
86
88
 
89
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
90
+ (defined(__cplusplus) && __cplusplus >= 201103L)
87
91
  #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
92
+ #endif
88
93
  #define FLT_ROUNDS (__builtin_flt_rounds())
89
94
  #define FLT_RADIX __FLT_RADIX__
90
95
 
@@ -92,8 +97,9 @@
92
97
  #define DBL_MANT_DIG __DBL_MANT_DIG__
93
98
  #define LDBL_MANT_DIG __LDBL_MANT_DIG__
94
99
 
95
- #if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__) || \
96
- __cplusplus >= 201103L || \
100
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
101
+ !defined(__STRICT_ANSI__) || \
102
+ (defined(__cplusplus) && __cplusplus >= 201103L) || \
97
103
  (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
98
104
  # define DECIMAL_DIG __DECIMAL_DIG__
99
105
  #endif
@@ -130,8 +136,9 @@
130
136
  #define DBL_MIN __DBL_MIN__
131
137
  #define LDBL_MIN __LDBL_MIN__
132
138
 
133
- #if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__) || \
134
- __cplusplus >= 201703L || \
139
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \
140
+ !defined(__STRICT_ANSI__) || \
141
+ (defined(__cplusplus) && __cplusplus >= 201703L) || \
135
142
  (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE))
136
143
  # define FLT_TRUE_MIN __FLT_DENORM_MIN__
137
144
  # define DBL_TRUE_MIN __DBL_DENORM_MIN__
@@ -20,10 +20,12 @@
20
20
  /* Default attributes for YMM unmasked form. */
21
21
  #define __DEFAULT_FN_ATTRS_Y __attribute__((__always_inline__, __nodebug__, __target__("avx,gfni"), __min_vector_width__(256)))
22
22
 
23
- /* Default attributes for ZMM forms. */
24
- #define __DEFAULT_FN_ATTRS_Z __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512)))
23
+ /* Default attributes for ZMM unmasked forms. */
24
+ #define __DEFAULT_FN_ATTRS_Z __attribute__((__always_inline__, __nodebug__, __target__("avx512f,gfni"), __min_vector_width__(512)))
25
+ /* Default attributes for ZMM masked forms. */
26
+ #define __DEFAULT_FN_ATTRS_Z_MASK __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,gfni"), __min_vector_width__(512)))
25
27
 
26
- /* Default attributes for VLX forms. */
28
+ /* Default attributes for VLX masked forms. */
27
29
  #define __DEFAULT_FN_ATTRS_VL128 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(128)))
28
30
  #define __DEFAULT_FN_ATTRS_VL256 __attribute__((__always_inline__, __nodebug__, __target__("avx512bw,avx512vl,gfni"), __min_vector_width__(256)))
29
31
 
@@ -99,7 +101,7 @@ _mm512_gf2p8mul_epi8(__m512i __A, __m512i __B)
99
101
  (__v64qi) __B);
100
102
  }
101
103
 
102
- static __inline__ __m512i __DEFAULT_FN_ATTRS_Z
104
+ static __inline__ __m512i __DEFAULT_FN_ATTRS_Z_MASK
103
105
  _mm512_mask_gf2p8mul_epi8(__m512i __S, __mmask64 __U, __m512i __A, __m512i __B)
104
106
  {
105
107
  return (__m512i) __builtin_ia32_selectb_512(__U,
@@ -107,7 +109,7 @@ _mm512_mask_gf2p8mul_epi8(__m512i __S, __mmask64 __U, __m512i __A, __m512i __B)
107
109
  (__v64qi) __S);
108
110
  }
109
111
 
110
- static __inline__ __m512i __DEFAULT_FN_ATTRS_Z
112
+ static __inline__ __m512i __DEFAULT_FN_ATTRS_Z_MASK
111
113
  _mm512_maskz_gf2p8mul_epi8(__mmask64 __U, __m512i __A, __m512i __B)
112
114
  {
113
115
  return _mm512_mask_gf2p8mul_epi8((__m512i)_mm512_setzero_si512(),
@@ -9,6 +9,7 @@
9
9
  #ifndef _HLSL_HLSL_BASIC_TYPES_H_
10
10
  #define _HLSL_HLSL_BASIC_TYPES_H_
11
11
 
12
+ namespace hlsl {
12
13
  // built-in scalar data types:
13
14
 
14
15
  #ifdef __HLSL_ENABLE_16_BIT
@@ -61,4 +62,6 @@ typedef vector<double, 2> double2;
61
62
  typedef vector<double, 3> double3;
62
63
  typedef vector<double, 4> double4;
63
64
 
65
+ } // namespace hlsl
66
+
64
67
  #endif //_HLSL_HLSL_BASIC_TYPES_H_
@@ -0,0 +1,223 @@
1
+ //===----- hlsl_intrinsics.h - HLSL definitions for 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
+ #ifndef _HLSL_HLSL_INTRINSICS_H_
10
+ #define _HLSL_HLSL_INTRINSICS_H_
11
+
12
+ namespace hlsl {
13
+
14
+ __attribute__((availability(shadermodel, introduced = 6.0)))
15
+ __attribute__((clang_builtin_alias(__builtin_hlsl_wave_active_count_bits))) uint
16
+ WaveActiveCountBits(bool bBit);
17
+
18
+ // abs builtins
19
+ #ifdef __HLSL_ENABLE_16_BIT
20
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
21
+ int16_t abs(int16_t);
22
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
23
+ int16_t2 abs(int16_t2);
24
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
25
+ int16_t3 abs(int16_t3);
26
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
27
+ int16_t4 abs(int16_t4);
28
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) half abs(half);
29
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
30
+ half2 abs(half2);
31
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
32
+ half3 abs(half3);
33
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
34
+ half4 abs(half4);
35
+ #endif
36
+
37
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int abs(int);
38
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int2 abs(int2);
39
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int3 abs(int3);
40
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) int4 abs(int4);
41
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) float
42
+ abs(float);
43
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
44
+ float2 abs(float2);
45
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
46
+ float3 abs(float3);
47
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
48
+ float4 abs(float4);
49
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
50
+ int64_t abs(int64_t);
51
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
52
+ int64_t2 abs(int64_t2);
53
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
54
+ int64_t3 abs(int64_t3);
55
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
56
+ int64_t4 abs(int64_t4);
57
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs))) double
58
+ abs(double);
59
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
60
+ double2 abs(double2);
61
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
62
+ double3 abs(double3);
63
+ __attribute__((clang_builtin_alias(__builtin_elementwise_abs)))
64
+ double4 abs(double4);
65
+
66
+ // sqrt builtins
67
+ __attribute__((clang_builtin_alias(__builtin_sqrt))) double sqrt(double In);
68
+ __attribute__((clang_builtin_alias(__builtin_sqrtf))) float sqrt(float In);
69
+
70
+ #ifdef __HLSL_ENABLE_16_BIT
71
+ __attribute__((clang_builtin_alias(__builtin_sqrtf16))) half sqrt(half In);
72
+ #endif
73
+
74
+ // ceil builtins
75
+ #ifdef __HLSL_ENABLE_16_BIT
76
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
77
+ half ceil(half);
78
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
79
+ half2 ceil(half2);
80
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
81
+ half3 ceil(half3);
82
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
83
+ half4 ceil(half4);
84
+ #endif
85
+
86
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil))) float
87
+ ceil(float);
88
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
89
+ float2 ceil(float2);
90
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
91
+ float3 ceil(float3);
92
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
93
+ float4 ceil(float4);
94
+
95
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil))) double
96
+ ceil(double);
97
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
98
+ double2 ceil(double2);
99
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
100
+ double3 ceil(double3);
101
+ __attribute__((clang_builtin_alias(__builtin_elementwise_ceil)))
102
+ double4 ceil(double4);
103
+
104
+ // floor builtins
105
+ #ifdef __HLSL_ENABLE_16_BIT
106
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
107
+ half floor(half);
108
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
109
+ half2 floor(half2);
110
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
111
+ half3 floor(half3);
112
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
113
+ half4 floor(half4);
114
+ #endif
115
+
116
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor))) float
117
+ floor(float);
118
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
119
+ float2 floor(float2);
120
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
121
+ float3 floor(float3);
122
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
123
+ float4 floor(float4);
124
+
125
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor))) double
126
+ floor(double);
127
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
128
+ double2 floor(double2);
129
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
130
+ double3 floor(double3);
131
+ __attribute__((clang_builtin_alias(__builtin_elementwise_floor)))
132
+ double4 floor(double4);
133
+
134
+ // cos builtins
135
+ #ifdef __HLSL_ENABLE_16_BIT
136
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos))) half cos(half);
137
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
138
+ half2 cos(half2);
139
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
140
+ half3 cos(half3);
141
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
142
+ half4 cos(half4);
143
+ #endif
144
+
145
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos))) float
146
+ cos(float);
147
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
148
+ float2 cos(float2);
149
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
150
+ float3 cos(float3);
151
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
152
+ float4 cos(float4);
153
+
154
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos))) double
155
+ cos(double);
156
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
157
+ double2 cos(double2);
158
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
159
+ double3 cos(double3);
160
+ __attribute__((clang_builtin_alias(__builtin_elementwise_cos)))
161
+ double4 cos(double4);
162
+
163
+ // sin builtins
164
+ #ifdef __HLSL_ENABLE_16_BIT
165
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin))) half sin(half);
166
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
167
+ half2 sin(half2);
168
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
169
+ half3 sin(half3);
170
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
171
+ half4 sin(half4);
172
+ #endif
173
+
174
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin))) float
175
+ sin(float);
176
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
177
+ float2 sin(float2);
178
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
179
+ float3 sin(float3);
180
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
181
+ float4 sin(float4);
182
+
183
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin))) double
184
+ sin(double);
185
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
186
+ double2 sin(double2);
187
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
188
+ double3 sin(double3);
189
+ __attribute__((clang_builtin_alias(__builtin_elementwise_sin)))
190
+ double4 sin(double4);
191
+
192
+ // trunc builtins
193
+ #ifdef __HLSL_ENABLE_16_BIT
194
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
195
+ half trunc(half);
196
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
197
+ half2 trunc(half2);
198
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
199
+ half3 trunc(half3);
200
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
201
+ half4 trunc(half4);
202
+ #endif
203
+
204
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc))) float
205
+ trunc(float);
206
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
207
+ float2 trunc(float2);
208
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
209
+ float3 trunc(float3);
210
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
211
+ float4 trunc(float4);
212
+
213
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc))) double
214
+ trunc(double);
215
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
216
+ double2 trunc(double2);
217
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
218
+ double3 trunc(double3);
219
+ __attribute__((clang_builtin_alias(__builtin_elementwise_trunc)))
220
+ double4 trunc(double4);
221
+
222
+ } // namespace hlsl
223
+ #endif //_HLSL_HLSL_INTRINSICS_H_
@@ -189,6 +189,11 @@
189
189
  #include <avx512ifmavlintrin.h>
190
190
  #endif
191
191
 
192
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
193
+ defined(__AVXIFMA__)
194
+ #include <avxifmaintrin.h>
195
+ #endif
196
+
192
197
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
193
198
  defined(__AVX512VBMI__)
194
199
  #include <avx512vbmiintrin.h>
@@ -214,17 +219,13 @@
214
219
  #include <avx512pfintrin.h>
215
220
  #endif
216
221
 
217
- /*
218
- * FIXME: _Float16 type is legal only when HW support float16 operation.
219
- * We use __AVX512FP16__ to identify if float16 is supported or not, so
220
- * when float16 is not supported, the related header is not included.
221
- *
222
- */
223
- #if defined(__AVX512FP16__)
222
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
223
+ defined(__AVX512FP16__)
224
224
  #include <avx512fp16intrin.h>
225
225
  #endif
226
226
 
227
- #if defined(__AVX512FP16__) && defined(__AVX512VL__)
227
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
228
+ (defined(__AVX512VL__) && defined(__AVX512FP16__))
228
229
  #include <avx512vlfp16intrin.h>
229
230
  #endif
230
231
 
@@ -258,6 +259,16 @@
258
259
  #include <gfniintrin.h>
259
260
  #endif
260
261
 
262
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
263
+ defined(__AVXVNNIINT8__)
264
+ #include <avxvnniint8intrin.h>
265
+ #endif
266
+
267
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
268
+ defined(__AVXNECONVERT__)
269
+ #include <avxneconvertintrin.h>
270
+ #endif
271
+
261
272
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
262
273
  defined(__RDPID__)
263
274
  /// Returns the value of the IA32_TSC_AUX MSR (0xc0000103).
@@ -291,6 +302,23 @@ _rdrand64_step(unsigned long long *__p)
291
302
  {
292
303
  return (int)__builtin_ia32_rdrand64_step(__p);
293
304
  }
305
+ #else
306
+ // We need to emulate the functionality of 64-bit rdrand with 2 32-bit
307
+ // rdrand instructions.
308
+ static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
309
+ _rdrand64_step(unsigned long long *__p)
310
+ {
311
+ unsigned int __lo, __hi;
312
+ unsigned int __res_lo = __builtin_ia32_rdrand32_step(&__lo);
313
+ unsigned int __res_hi = __builtin_ia32_rdrand32_step(&__hi);
314
+ if (__res_lo && __res_hi) {
315
+ *__p = ((unsigned long long)__hi << 32) | (unsigned long long)__lo;
316
+ return 1;
317
+ } else {
318
+ *__p = 0;
319
+ return 0;
320
+ }
321
+ }
294
322
  #endif
295
323
  #endif /* __RDRND__ */
296
324
 
@@ -495,6 +523,10 @@ _storebe_i64(void * __P, long long __D) {
495
523
  defined(__INVPCID__)
496
524
  #include <invpcidintrin.h>
497
525
  #endif
526
+ #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
527
+ defined(__AMX_FP16__)
528
+ #include <amxfp16intrin.h>
529
+ #endif
498
530
 
499
531
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
500
532
  defined(__KL__) || defined(__WIDEKL__)
@@ -502,7 +534,7 @@ _storebe_i64(void * __P, long long __D) {
502
534
  #endif
503
535
 
504
536
  #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \
505
- defined(__AMXTILE__) || defined(__AMXINT8__) || defined(__AMXBF16__)
537
+ defined(__AMX_TILE__) || defined(__AMX_INT8__) || defined(__AMX_BF16__)
506
538
  #include <amxintrin.h>
507
539
  #endif
508
540
 
@@ -0,0 +1,234 @@
1
+ /*===------------ larchintrin.h - LoongArch 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 _LOONGARCH_BASE_INTRIN_H
11
+ #define _LOONGARCH_BASE_INTRIN_H
12
+
13
+ #ifdef __cplusplus
14
+ extern "C" {
15
+ #endif
16
+
17
+ typedef struct rdtime {
18
+ unsigned int value;
19
+ unsigned int timeid;
20
+ } __rdtime_t;
21
+
22
+ #if __loongarch_grlen == 64
23
+ typedef struct drdtime {
24
+ unsigned long dvalue;
25
+ unsigned long dtimeid;
26
+ } __drdtime_t;
27
+
28
+ extern __inline __drdtime_t
29
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
30
+ __rdtime_d(void) {
31
+ __drdtime_t __drdtime;
32
+ __asm__ volatile(
33
+ "rdtime.d %[val], %[tid]\n\t"
34
+ : [val] "=&r"(__drdtime.dvalue), [tid] "=&r"(__drdtime.dtimeid));
35
+ return __drdtime;
36
+ }
37
+ #endif
38
+
39
+ extern __inline __rdtime_t
40
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
41
+ __rdtimeh_w(void) {
42
+ __rdtime_t __rdtime;
43
+ __asm__ volatile("rdtimeh.w %[val], %[tid]\n\t"
44
+ : [val] "=&r"(__rdtime.value), [tid] "=&r"(__rdtime.timeid));
45
+ return __rdtime;
46
+ }
47
+
48
+ extern __inline __rdtime_t
49
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
50
+ __rdtimel_w(void) {
51
+ __rdtime_t __rdtime;
52
+ __asm__ volatile("rdtimel.w %[val], %[tid]\n\t"
53
+ : [val] "=&r"(__rdtime.value), [tid] "=&r"(__rdtime.timeid));
54
+ return __rdtime;
55
+ }
56
+
57
+ #if __loongarch_grlen == 64
58
+ extern __inline int
59
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
60
+ __crc_w_b_w(char _1, int _2) {
61
+ return (int)__builtin_loongarch_crc_w_b_w((char)_1, (int)_2);
62
+ }
63
+
64
+ extern __inline int
65
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
66
+ __crc_w_h_w(short _1, int _2) {
67
+ return (int)__builtin_loongarch_crc_w_h_w((short)_1, (int)_2);
68
+ }
69
+
70
+ extern __inline int
71
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
72
+ __crc_w_w_w(int _1, int _2) {
73
+ return (int)__builtin_loongarch_crc_w_w_w((int)_1, (int)_2);
74
+ }
75
+
76
+ extern __inline int
77
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
78
+ __crc_w_d_w(long int _1, int _2) {
79
+ return (int)__builtin_loongarch_crc_w_d_w((long int)_1, (int)_2);
80
+ }
81
+
82
+ extern __inline int
83
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
84
+ __crcc_w_b_w(char _1, int _2) {
85
+ return (int)__builtin_loongarch_crcc_w_b_w((char)_1, (int)_2);
86
+ }
87
+
88
+ extern __inline int
89
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
90
+ __crcc_w_h_w(short _1, int _2) {
91
+ return (int)__builtin_loongarch_crcc_w_h_w((short)_1, (int)_2);
92
+ }
93
+
94
+ extern __inline int
95
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
96
+ __crcc_w_w_w(int _1, int _2) {
97
+ return (int)__builtin_loongarch_crcc_w_w_w((int)_1, (int)_2);
98
+ }
99
+
100
+ extern __inline int
101
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
102
+ __crcc_w_d_w(long int _1, int _2) {
103
+ return (int)__builtin_loongarch_crcc_w_d_w((long int)_1, (int)_2);
104
+ }
105
+ #endif
106
+
107
+ #define __break(/*ui15*/ _1) __builtin_loongarch_break((_1))
108
+
109
+ #if __loongarch_grlen == 32
110
+ #define __cacop_w(/*uimm5*/ _1, /*unsigned int*/ _2, /*simm12*/ _3) \
111
+ ((void)__builtin_loongarch_cacop_w((_1), (unsigned int)(_2), (_3)))
112
+ #endif
113
+
114
+ #if __loongarch_grlen == 64
115
+ #define __cacop_d(/*uimm5*/ _1, /*unsigned long int*/ _2, /*simm12*/ _3) \
116
+ ((void)__builtin_loongarch_cacop_d((_1), (unsigned long int)(_2), (_3)))
117
+ #endif
118
+
119
+ #define __dbar(/*ui15*/ _1) __builtin_loongarch_dbar((_1))
120
+
121
+ #define __ibar(/*ui15*/ _1) __builtin_loongarch_ibar((_1))
122
+
123
+ #define __movfcsr2gr(/*ui5*/ _1) __builtin_loongarch_movfcsr2gr((_1));
124
+
125
+ #define __movgr2fcsr(/*ui5*/ _1, _2) \
126
+ __builtin_loongarch_movgr2fcsr((_1), (unsigned int)_2);
127
+
128
+ #define __syscall(/*ui15*/ _1) __builtin_loongarch_syscall((_1))
129
+
130
+ #define __csrrd_w(/*ui14*/ _1) ((unsigned int)__builtin_loongarch_csrrd_w((_1)))
131
+
132
+ #define __csrwr_w(/*unsigned int*/ _1, /*ui14*/ _2) \
133
+ ((unsigned int)__builtin_loongarch_csrwr_w((unsigned int)(_1), (_2)))
134
+
135
+ #define __csrxchg_w(/*unsigned int*/ _1, /*unsigned int*/ _2, /*ui14*/ _3) \
136
+ ((unsigned int)__builtin_loongarch_csrxchg_w((unsigned int)(_1), \
137
+ (unsigned int)(_2), (_3)))
138
+
139
+ #if __loongarch_grlen == 64
140
+ #define __csrrd_d(/*ui14*/ _1) \
141
+ ((unsigned long int)__builtin_loongarch_csrrd_d((_1)))
142
+
143
+ #define __csrwr_d(/*unsigned long int*/ _1, /*ui14*/ _2) \
144
+ ((unsigned long int)__builtin_loongarch_csrwr_d((unsigned long int)(_1), \
145
+ (_2)))
146
+
147
+ #define __csrxchg_d(/*unsigned long int*/ _1, /*unsigned long int*/ _2, \
148
+ /*ui14*/ _3) \
149
+ ((unsigned long int)__builtin_loongarch_csrxchg_d( \
150
+ (unsigned long int)(_1), (unsigned long int)(_2), (_3)))
151
+ #endif
152
+
153
+ extern __inline unsigned char
154
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
155
+ __iocsrrd_b(unsigned int _1) {
156
+ return (unsigned char)__builtin_loongarch_iocsrrd_b((unsigned int)_1);
157
+ }
158
+
159
+ extern __inline unsigned char
160
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
161
+ __iocsrrd_h(unsigned int _1) {
162
+ return (unsigned short)__builtin_loongarch_iocsrrd_h((unsigned int)_1);
163
+ }
164
+
165
+ extern __inline unsigned int
166
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
167
+ __iocsrrd_w(unsigned int _1) {
168
+ return (unsigned int)__builtin_loongarch_iocsrrd_w((unsigned int)_1);
169
+ }
170
+
171
+ #if __loongarch_grlen == 64
172
+ extern __inline unsigned long int
173
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
174
+ __iocsrrd_d(unsigned int _1) {
175
+ return (unsigned long int)__builtin_loongarch_iocsrrd_d((unsigned int)_1);
176
+ }
177
+ #endif
178
+
179
+ extern __inline void
180
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
181
+ __iocsrwr_b(unsigned char _1, unsigned int _2) {
182
+ __builtin_loongarch_iocsrwr_b((unsigned char)_1, (unsigned int)_2);
183
+ }
184
+
185
+ extern __inline void
186
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
187
+ __iocsrwr_h(unsigned short _1, unsigned int _2) {
188
+ __builtin_loongarch_iocsrwr_h((unsigned short)_1, (unsigned int)_2);
189
+ }
190
+
191
+ extern __inline void
192
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
193
+ __iocsrwr_w(unsigned int _1, unsigned int _2) {
194
+ __builtin_loongarch_iocsrwr_w((unsigned int)_1, (unsigned int)_2);
195
+ }
196
+
197
+ extern __inline unsigned int
198
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
199
+ __cpucfg(unsigned int _1) {
200
+ return (unsigned int)__builtin_loongarch_cpucfg((unsigned int)_1);
201
+ }
202
+
203
+ #if __loongarch_grlen == 64
204
+ extern __inline void
205
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
206
+ __iocsrwr_d(unsigned long int _1, unsigned int _2) {
207
+ __builtin_loongarch_iocsrwr_d((unsigned long int)_1, (unsigned int)_2);
208
+ }
209
+
210
+ extern __inline void
211
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
212
+ __asrtgt_d(long int _1, long int _2) {
213
+ __builtin_loongarch_asrtgt_d((long int)_1, (long int)_2);
214
+ }
215
+
216
+ extern __inline void
217
+ __attribute__((__gnu_inline__, __always_inline__, __artificial__))
218
+ __asrtle_d(long int _1, long int _2) {
219
+ __builtin_loongarch_asrtle_d((long int)_1, (long int)_2);
220
+ }
221
+ #endif
222
+
223
+ #if __loongarch_grlen == 64
224
+ #define __lddir_d(/*long int*/ _1, /*ui5*/ _2) \
225
+ ((long int)__builtin_loongarch_lddir_d((long int)(_1), (_2)))
226
+
227
+ #define __ldpte_d(/*long int*/ _1, /*ui5*/ _2) \
228
+ ((void)__builtin_loongarch_ldpte_d((long int)(_1), (_2)))
229
+ #endif
230
+
231
+ #ifdef __cplusplus
232
+ }
233
+ #endif
234
+ #endif /* _LOONGARCH_BASE_INTRIN_H */