llvm-runtime-resources-darwin 22.1.8 → 23.1.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 (136) hide show
  1. package/include/__clang_cuda_complex_builtins.h +10 -3
  2. package/include/__clang_cuda_intrinsics.h +207 -226
  3. package/include/__clang_cuda_math_forward_declares.h +5 -0
  4. package/include/__clang_cuda_runtime_wrapper.h +9 -5
  5. package/include/__clang_gpu_builtin_vars.h +71 -0
  6. package/include/__clang_gpu_device_functions.h +411 -0
  7. package/include/__clang_gpu_intrinsics.h +242 -0
  8. package/include/__clang_hip_libdevice_declares.h +0 -102
  9. package/include/__clang_hip_math.h +3 -3
  10. package/include/__clang_hip_runtime_wrapper.h +6 -1
  11. package/include/__clang_spirv_libdevice_declares.h +170 -0
  12. package/include/__clang_spirv_math.h +719 -0
  13. package/include/altivec.h +79 -9
  14. package/include/amdgpuintrin.h +2 -29
  15. package/include/amdhsa_abi.h +83 -0
  16. package/include/amo.h +89 -0
  17. package/include/andes_vector.h +5 -0
  18. package/include/arm64_neon.h +21 -0
  19. package/include/arm64intr.h +10 -0
  20. package/include/arm_acle.h +1 -0
  21. package/include/arm_neon.h +3922 -3754
  22. package/include/arm_sme.h +12 -0
  23. package/include/arm_sve.h +420 -0
  24. package/include/avx2intrin.h +4 -5
  25. package/include/avx512bmmintrin.h +174 -0
  26. package/include/avx512bmmvlintrin.h +245 -0
  27. package/include/avx512bwintrin.h +19 -29
  28. package/include/avx512fintrin.h +62 -89
  29. package/include/avx512fp16intrin.h +12 -18
  30. package/include/avx512vbmi2intrin.h +12 -16
  31. package/include/avx512vlbwintrin.h +24 -36
  32. package/include/avx512vlintrin.h +80 -96
  33. package/include/avx512vlvbmi2intrin.h +24 -32
  34. package/include/avx512vlvnniintrin.h +29 -34
  35. package/include/avx512vnniintrin.h +32 -35
  36. package/include/avx512vp2intersectintrin.h +1 -1
  37. package/include/avxvnniintrin.h +23 -18
  38. package/include/crc32intrin.h +10 -8
  39. package/include/emmintrin.h +8 -8
  40. package/include/endian.h +91 -0
  41. package/include/fuzzer/FuzzedDataProvider.h +3 -3
  42. package/include/gpuintrin.h +123 -105
  43. package/include/hlsl_alias_intrinsics_gen.inc +3869 -0
  44. package/include/hlsl_inline_intrinsics_gen.inc +546 -0
  45. package/include/hvx_hexagon_protos.h +102 -80
  46. package/include/immintrin.h +4 -2
  47. package/include/intrin.h +20 -10
  48. package/include/larchintrin.h +2 -0
  49. package/include/llvm_libc_wrappers/ctype.h +3 -2
  50. package/include/llvm_libc_wrappers/string.h +3 -2
  51. package/include/module.modulemap +16 -1
  52. package/include/nvptxintrin.h +15 -26
  53. package/include/opencl-c-base.h +7 -0
  54. package/include/opencl-c.h +163 -102
  55. package/include/openmp_wrappers/__clang_openmp_device_functions.h +14 -0
  56. package/include/openmp_wrappers/complex +7 -1
  57. package/include/openmp_wrappers/complex.h +6 -0
  58. package/include/openmp_wrappers/math.h +10 -0
  59. package/include/profile/InstrProfData.inc +65 -3
  60. package/include/ptrauth.h +90 -12
  61. package/include/riscv_bitmanip.h +7 -0
  62. package/include/riscv_corev_alu.h +2 -0
  63. package/include/riscv_crypto.h +8 -0
  64. package/include/riscv_mips.h +2 -0
  65. package/include/riscv_nds.h +3 -0
  66. package/include/riscv_ntlh.h +2 -0
  67. package/include/riscv_packed_simd.h +644 -0
  68. package/include/riscv_vector.h +43 -0
  69. package/include/sanitizer/asan_interface.h +51 -1
  70. package/include/sanitizer/common_interface_defs.h +12 -49
  71. package/include/sanitizer/safestack_interface.h +50 -0
  72. package/include/sanitizer/tysan_interface.h +36 -0
  73. package/include/sanitizer/ubsan_interface.h +30 -0
  74. package/include/sifive_vector.h +18 -0
  75. package/include/spirvintrin.h +2 -29
  76. package/include/stdint.h +5 -14
  77. package/include/vecintrin.h +1 -1
  78. package/include/wasm_simd128.h +17 -0
  79. package/include/xmmintrin.h +8 -7
  80. package/include/zos_wrappers/grp.h +19 -0
  81. package/include/zos_wrappers/locale.h +19 -0
  82. package/include/zos_wrappers/math.h +31 -0
  83. package/include/zos_wrappers/poll.h +19 -0
  84. package/include/zos_wrappers/stdlib.h +20 -0
  85. package/include/zos_wrappers/string.h +19 -0
  86. package/include/zos_wrappers/time.h +19 -0
  87. package/include/zos_wrappers/variant.h +19 -0
  88. package/lib/darwin/libclang_rt.asan_abi_ios.a +0 -0
  89. package/lib/darwin/libclang_rt.asan_abi_iossim.a +0 -0
  90. package/lib/darwin/libclang_rt.asan_abi_osx.a +0 -0
  91. package/lib/darwin/libclang_rt.asan_ios_dynamic.dylib +0 -0
  92. package/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib +0 -0
  93. package/lib/darwin/libclang_rt.asan_osx_dynamic.dylib +0 -0
  94. package/lib/darwin/libclang_rt.cc_kext.a +0 -0
  95. package/lib/darwin/libclang_rt.cc_kext_ios.a +0 -0
  96. package/lib/darwin/libclang_rt.fuzzer_ios.a +0 -0
  97. package/lib/darwin/libclang_rt.fuzzer_iossim.a +0 -0
  98. package/lib/darwin/libclang_rt.fuzzer_no_main_ios.a +0 -0
  99. package/lib/darwin/libclang_rt.fuzzer_no_main_iossim.a +0 -0
  100. package/lib/darwin/libclang_rt.fuzzer_no_main_osx.a +0 -0
  101. package/lib/darwin/libclang_rt.fuzzer_osx.a +0 -0
  102. package/lib/darwin/libclang_rt.ios.a +0 -0
  103. package/lib/darwin/libclang_rt.iossim.a +0 -0
  104. package/lib/darwin/libclang_rt.lsan_ios_dynamic.dylib +0 -0
  105. package/lib/darwin/libclang_rt.lsan_iossim_dynamic.dylib +0 -0
  106. package/lib/darwin/libclang_rt.lsan_osx_dynamic.dylib +0 -0
  107. package/lib/darwin/libclang_rt.osx.a +0 -0
  108. package/lib/darwin/libclang_rt.profile_ios.a +0 -0
  109. package/lib/darwin/libclang_rt.profile_iossim.a +0 -0
  110. package/lib/darwin/libclang_rt.profile_osx.a +0 -0
  111. package/lib/darwin/libclang_rt.rtsan_ios_dynamic.dylib +0 -0
  112. package/lib/darwin/libclang_rt.rtsan_iossim_dynamic.dylib +0 -0
  113. package/lib/darwin/libclang_rt.rtsan_osx_dynamic.dylib +0 -0
  114. package/lib/darwin/libclang_rt.stats_client_ios.a +0 -0
  115. package/lib/darwin/libclang_rt.stats_client_iossim.a +0 -0
  116. package/lib/darwin/libclang_rt.stats_client_osx.a +0 -0
  117. package/lib/darwin/libclang_rt.stats_ios_dynamic.dylib +0 -0
  118. package/lib/darwin/libclang_rt.stats_iossim_dynamic.dylib +0 -0
  119. package/lib/darwin/libclang_rt.stats_osx_dynamic.dylib +0 -0
  120. package/lib/darwin/libclang_rt.tsan_ios_dynamic.dylib +0 -0
  121. package/lib/darwin/libclang_rt.tsan_iossim_dynamic.dylib +0 -0
  122. package/lib/darwin/libclang_rt.tsan_osx_dynamic.dylib +0 -0
  123. package/lib/darwin/libclang_rt.tysan_ios_dynamic.dylib +0 -0
  124. package/lib/darwin/libclang_rt.tysan_iossim_dynamic.dylib +0 -0
  125. package/lib/darwin/libclang_rt.tysan_osx_dynamic.dylib +0 -0
  126. package/lib/darwin/libclang_rt.ubsan_ios_dynamic.dylib +0 -0
  127. package/lib/darwin/libclang_rt.ubsan_iossim_dynamic.dylib +0 -0
  128. package/lib/darwin/libclang_rt.ubsan_minimal_ios.a +0 -0
  129. package/lib/darwin/libclang_rt.ubsan_minimal_ios_dynamic.dylib +0 -0
  130. package/lib/darwin/libclang_rt.ubsan_minimal_iossim.a +0 -0
  131. package/lib/darwin/libclang_rt.ubsan_minimal_iossim_dynamic.dylib +0 -0
  132. package/lib/darwin/libclang_rt.ubsan_minimal_osx.a +0 -0
  133. package/lib/darwin/libclang_rt.ubsan_minimal_osx_dynamic.dylib +0 -0
  134. package/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib +0 -0
  135. package/package.json +1 -1
  136. package/include/amxtf32intrin.h +0 -108
@@ -15,6 +15,16 @@
15
15
  #define __AVX512VLVNNIINTRIN_H
16
16
 
17
17
  /* Define the default attributes for the functions in this file. */
18
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
19
+ #define __DEFAULT_FN_ATTRS128 \
20
+ __attribute__((__always_inline__, __nodebug__, \
21
+ __target__("avx512vl,avx512vnni"), \
22
+ __min_vector_width__(128))) constexpr
23
+ #define __DEFAULT_FN_ATTRS256 \
24
+ __attribute__((__always_inline__, __nodebug__, \
25
+ __target__("avx512vl,avx512vnni"), \
26
+ __min_vector_width__(256))) constexpr
27
+ #else
18
28
  #define __DEFAULT_FN_ATTRS128 \
19
29
  __attribute__((__always_inline__, __nodebug__, \
20
30
  __target__("avx512vl,avx512vnni"), \
@@ -23,6 +33,7 @@
23
33
  __attribute__((__always_inline__, __nodebug__, \
24
34
  __target__("avx512vl,avx512vnni"), \
25
35
  __min_vector_width__(256)))
36
+ #endif
26
37
 
27
38
  /// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a A with
28
39
  /// corresponding signed 8-bit integers in \a B, producing 4 intermediate signed
@@ -180,128 +191,112 @@
180
191
  ((__m128i)__builtin_ia32_vpdpwssds128((__v4si)(S), (__v8hi)(A), (__v8hi)(B)))
181
192
 
182
193
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
183
- _mm256_mask_dpbusd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
184
- {
194
+ _mm256_mask_dpbusd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
185
195
  return (__m256i)__builtin_ia32_selectd_256(__U,
186
196
  (__v8si)_mm256_dpbusd_epi32(__S, __A, __B),
187
197
  (__v8si)__S);
188
198
  }
189
199
 
190
200
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
191
- _mm256_maskz_dpbusd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
192
- {
201
+ _mm256_maskz_dpbusd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
193
202
  return (__m256i)__builtin_ia32_selectd_256(__U,
194
203
  (__v8si)_mm256_dpbusd_epi32(__S, __A, __B),
195
204
  (__v8si)_mm256_setzero_si256());
196
205
  }
197
206
 
198
207
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
199
- _mm256_mask_dpbusds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
200
- {
208
+ _mm256_mask_dpbusds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
201
209
  return (__m256i)__builtin_ia32_selectd_256(__U,
202
210
  (__v8si)_mm256_dpbusds_epi32(__S, __A, __B),
203
211
  (__v8si)__S);
204
212
  }
205
213
 
206
- static __inline__ __m256i __DEFAULT_FN_ATTRS256
207
- _mm256_maskz_dpbusds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
208
- {
214
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_dpbusds_epi32(
215
+ __mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
209
216
  return (__m256i)__builtin_ia32_selectd_256(__U,
210
217
  (__v8si)_mm256_dpbusds_epi32(__S, __A, __B),
211
218
  (__v8si)_mm256_setzero_si256());
212
219
  }
213
220
 
214
221
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
215
- _mm256_mask_dpwssd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
216
- {
222
+ _mm256_mask_dpwssd_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
217
223
  return (__m256i)__builtin_ia32_selectd_256(__U,
218
224
  (__v8si)_mm256_dpwssd_epi32(__S, __A, __B),
219
225
  (__v8si)__S);
220
226
  }
221
227
 
222
228
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
223
- _mm256_maskz_dpwssd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
224
- {
229
+ _mm256_maskz_dpwssd_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
225
230
  return (__m256i)__builtin_ia32_selectd_256(__U,
226
231
  (__v8si)_mm256_dpwssd_epi32(__S, __A, __B),
227
232
  (__v8si)_mm256_setzero_si256());
228
233
  }
229
234
 
230
235
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
231
- _mm256_mask_dpwssds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B)
232
- {
236
+ _mm256_mask_dpwssds_epi32(__m256i __S, __mmask8 __U, __m256i __A, __m256i __B) {
233
237
  return (__m256i)__builtin_ia32_selectd_256(__U,
234
238
  (__v8si)_mm256_dpwssds_epi32(__S, __A, __B),
235
239
  (__v8si)__S);
236
240
  }
237
241
 
238
- static __inline__ __m256i __DEFAULT_FN_ATTRS256
239
- _mm256_maskz_dpwssds_epi32(__mmask8 __U, __m256i __S, __m256i __A, __m256i __B)
240
- {
242
+ static __inline__ __m256i __DEFAULT_FN_ATTRS256 _mm256_maskz_dpwssds_epi32(
243
+ __mmask8 __U, __m256i __S, __m256i __A, __m256i __B) {
241
244
  return (__m256i)__builtin_ia32_selectd_256(__U,
242
245
  (__v8si)_mm256_dpwssds_epi32(__S, __A, __B),
243
246
  (__v8si)_mm256_setzero_si256());
244
247
  }
245
248
 
246
249
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
247
- _mm_mask_dpbusd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
248
- {
250
+ _mm_mask_dpbusd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
249
251
  return (__m128i)__builtin_ia32_selectd_128(__U,
250
252
  (__v4si)_mm_dpbusd_epi32(__S, __A, __B),
251
253
  (__v4si)__S);
252
254
  }
253
255
 
254
256
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
255
- _mm_maskz_dpbusd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
256
- {
257
+ _mm_maskz_dpbusd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
257
258
  return (__m128i)__builtin_ia32_selectd_128(__U,
258
259
  (__v4si)_mm_dpbusd_epi32(__S, __A, __B),
259
260
  (__v4si)_mm_setzero_si128());
260
261
  }
261
262
 
262
263
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
263
- _mm_mask_dpbusds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
264
- {
264
+ _mm_mask_dpbusds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
265
265
  return (__m128i)__builtin_ia32_selectd_128(__U,
266
266
  (__v4si)_mm_dpbusds_epi32(__S, __A, __B),
267
267
  (__v4si)__S);
268
268
  }
269
269
 
270
270
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
271
- _mm_maskz_dpbusds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
272
- {
271
+ _mm_maskz_dpbusds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
273
272
  return (__m128i)__builtin_ia32_selectd_128(__U,
274
273
  (__v4si)_mm_dpbusds_epi32(__S, __A, __B),
275
274
  (__v4si)_mm_setzero_si128());
276
275
  }
277
276
 
278
277
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
279
- _mm_mask_dpwssd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
280
- {
278
+ _mm_mask_dpwssd_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
281
279
  return (__m128i)__builtin_ia32_selectd_128(__U,
282
280
  (__v4si)_mm_dpwssd_epi32(__S, __A, __B),
283
281
  (__v4si)__S);
284
282
  }
285
283
 
286
284
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
287
- _mm_maskz_dpwssd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
288
- {
285
+ _mm_maskz_dpwssd_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
289
286
  return (__m128i)__builtin_ia32_selectd_128(__U,
290
287
  (__v4si)_mm_dpwssd_epi32(__S, __A, __B),
291
288
  (__v4si)_mm_setzero_si128());
292
289
  }
293
290
 
294
291
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
295
- _mm_mask_dpwssds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B)
296
- {
292
+ _mm_mask_dpwssds_epi32(__m128i __S, __mmask8 __U, __m128i __A, __m128i __B) {
297
293
  return (__m128i)__builtin_ia32_selectd_128(__U,
298
294
  (__v4si)_mm_dpwssds_epi32(__S, __A, __B),
299
295
  (__v4si)__S);
300
296
  }
301
297
 
302
298
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
303
- _mm_maskz_dpwssds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B)
304
- {
299
+ _mm_maskz_dpwssds_epi32(__mmask8 __U, __m128i __S, __m128i __A, __m128i __B) {
305
300
  return (__m128i)__builtin_ia32_selectd_128(__U,
306
301
  (__v4si)_mm_dpwssds_epi32(__S, __A, __B),
307
302
  (__v4si)_mm_setzero_si128());
@@ -15,102 +15,99 @@
15
15
  #define __AVX512VNNIINTRIN_H
16
16
 
17
17
  /* Define the default attributes for the functions in this file. */
18
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
19
+ #define __DEFAULT_FN_ATTRS \
20
+ __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), \
21
+ __min_vector_width__(512))) constexpr
22
+ #else
18
23
  #define __DEFAULT_FN_ATTRS \
19
24
  __attribute__((__always_inline__, __nodebug__, __target__("avx512vnni"), \
20
25
  __min_vector_width__(512)))
26
+ #endif
21
27
 
22
- static __inline__ __m512i __DEFAULT_FN_ATTRS
23
- _mm512_dpbusd_epi32(__m512i __S, __m512i __A, __m512i __B)
24
- {
28
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbusd_epi32(__m512i __S,
29
+ __m512i __A,
30
+ __m512i __B) {
25
31
  return (__m512i)__builtin_ia32_vpdpbusd512((__v16si)__S, (__v64qu)__A,
26
32
  (__v64qi)__B);
27
33
  }
28
34
 
29
35
  static __inline__ __m512i __DEFAULT_FN_ATTRS
30
- _mm512_mask_dpbusd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B)
31
- {
36
+ _mm512_mask_dpbusd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {
32
37
  return (__m512i)__builtin_ia32_selectd_512(__U,
33
38
  (__v16si)_mm512_dpbusd_epi32(__S, __A, __B),
34
39
  (__v16si)__S);
35
40
  }
36
41
 
37
- static __inline__ __m512i __DEFAULT_FN_ATTRS
38
- _mm512_maskz_dpbusd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B)
39
- {
42
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbusd_epi32(
43
+ __mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {
40
44
  return (__m512i)__builtin_ia32_selectd_512(__U,
41
45
  (__v16si)_mm512_dpbusd_epi32(__S, __A, __B),
42
46
  (__v16si)_mm512_setzero_si512());
43
47
  }
44
48
 
45
- static __inline__ __m512i __DEFAULT_FN_ATTRS
46
- _mm512_dpbusds_epi32(__m512i __S, __m512i __A, __m512i __B)
47
- {
49
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpbusds_epi32(__m512i __S,
50
+ __m512i __A,
51
+ __m512i __B) {
48
52
  return (__m512i)__builtin_ia32_vpdpbusds512((__v16si)__S, (__v64qu)__A,
49
53
  (__v64qi)__B);
50
54
  }
51
55
 
52
- static __inline__ __m512i __DEFAULT_FN_ATTRS
53
- _mm512_mask_dpbusds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B)
54
- {
56
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpbusds_epi32(
57
+ __m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {
55
58
  return (__m512i)__builtin_ia32_selectd_512(__U,
56
59
  (__v16si)_mm512_dpbusds_epi32(__S, __A, __B),
57
60
  (__v16si)__S);
58
61
  }
59
62
 
60
- static __inline__ __m512i __DEFAULT_FN_ATTRS
61
- _mm512_maskz_dpbusds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B)
62
- {
63
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpbusds_epi32(
64
+ __mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {
63
65
  return (__m512i)__builtin_ia32_selectd_512(__U,
64
66
  (__v16si)_mm512_dpbusds_epi32(__S, __A, __B),
65
67
  (__v16si)_mm512_setzero_si512());
66
68
  }
67
69
 
68
- static __inline__ __m512i __DEFAULT_FN_ATTRS
69
- _mm512_dpwssd_epi32(__m512i __S, __m512i __A, __m512i __B)
70
- {
70
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwssd_epi32(__m512i __S,
71
+ __m512i __A,
72
+ __m512i __B) {
71
73
  return (__m512i)__builtin_ia32_vpdpwssd512((__v16si)__S, (__v32hi)__A,
72
74
  (__v32hi)__B);
73
75
  }
74
76
 
75
77
  static __inline__ __m512i __DEFAULT_FN_ATTRS
76
- _mm512_mask_dpwssd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B)
77
- {
78
+ _mm512_mask_dpwssd_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {
78
79
  return (__m512i)__builtin_ia32_selectd_512(__U,
79
80
  (__v16si)_mm512_dpwssd_epi32(__S, __A, __B),
80
81
  (__v16si)__S);
81
82
  }
82
83
 
83
- static __inline__ __m512i __DEFAULT_FN_ATTRS
84
- _mm512_maskz_dpwssd_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B)
85
- {
84
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwssd_epi32(
85
+ __mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {
86
86
  return (__m512i)__builtin_ia32_selectd_512(__U,
87
87
  (__v16si)_mm512_dpwssd_epi32(__S, __A, __B),
88
88
  (__v16si)_mm512_setzero_si512());
89
89
  }
90
90
 
91
- static __inline__ __m512i __DEFAULT_FN_ATTRS
92
- _mm512_dpwssds_epi32(__m512i __S, __m512i __A, __m512i __B)
93
- {
91
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_dpwssds_epi32(__m512i __S,
92
+ __m512i __A,
93
+ __m512i __B) {
94
94
  return (__m512i)__builtin_ia32_vpdpwssds512((__v16si)__S, (__v32hi)__A,
95
95
  (__v32hi)__B);
96
96
  }
97
97
 
98
- static __inline__ __m512i __DEFAULT_FN_ATTRS
99
- _mm512_mask_dpwssds_epi32(__m512i __S, __mmask16 __U, __m512i __A, __m512i __B)
100
- {
98
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_mask_dpwssds_epi32(
99
+ __m512i __S, __mmask16 __U, __m512i __A, __m512i __B) {
101
100
  return (__m512i)__builtin_ia32_selectd_512(__U,
102
101
  (__v16si)_mm512_dpwssds_epi32(__S, __A, __B),
103
102
  (__v16si)__S);
104
103
  }
105
104
 
106
- static __inline__ __m512i __DEFAULT_FN_ATTRS
107
- _mm512_maskz_dpwssds_epi32(__mmask16 __U, __m512i __S, __m512i __A, __m512i __B)
108
- {
105
+ static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_maskz_dpwssds_epi32(
106
+ __mmask16 __U, __m512i __S, __m512i __A, __m512i __B) {
109
107
  return (__m512i)__builtin_ia32_selectd_512(__U,
110
108
  (__v16si)_mm512_dpwssds_epi32(__S, __A, __B),
111
109
  (__v16si)_mm512_setzero_si512());
112
110
  }
113
111
 
114
112
  #undef __DEFAULT_FN_ATTRS
115
-
116
113
  #endif
@@ -22,7 +22,7 @@
22
22
  *===-----------------------------------------------------------------------===
23
23
  */
24
24
  #ifndef __IMMINTRIN_H
25
- #error "Never use <avx512vp2intersect.h> directly; include <immintrin.h> instead."
25
+ #error "Never use <avx512vp2intersectintrin.h> directly; include <immintrin.h> instead."
26
26
  #endif
27
27
 
28
28
  #ifndef _AVX512VP2INTERSECT_H
@@ -40,8 +40,21 @@
40
40
 
41
41
  /* Intrinsics with _avx_ prefix are for compatibility with msvc. */
42
42
  /* Define the default attributes for the functions in this file. */
43
- #define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avxvnni"), __min_vector_width__(256)))
44
- #define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avxvnni"), __min_vector_width__(128)))
43
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
44
+ #define __DEFAULT_FN_ATTRS256 \
45
+ __attribute__((__always_inline__, __nodebug__, __target__("avxvnni"), \
46
+ __min_vector_width__(256))) constexpr
47
+ #define __DEFAULT_FN_ATTRS128 \
48
+ __attribute__((__always_inline__, __nodebug__, __target__("avxvnni"), \
49
+ __min_vector_width__(128))) constexpr
50
+ #else
51
+ #define __DEFAULT_FN_ATTRS256 \
52
+ __attribute__((__always_inline__, __nodebug__, __target__("avxvnni"), \
53
+ __min_vector_width__(256)))
54
+ #define __DEFAULT_FN_ATTRS128 \
55
+ __attribute__((__always_inline__, __nodebug__, __target__("avxvnni"), \
56
+ __min_vector_width__(128)))
57
+ #endif
45
58
 
46
59
  /// Multiply groups of 4 adjacent pairs of unsigned 8-bit integers in \a __A with
47
60
  /// corresponding signed 8-bit integers in \a __B, producing 4 intermediate signed
@@ -61,8 +74,7 @@
61
74
  /// DST[MAX:256] := 0
62
75
  /// \endcode
63
76
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
64
- _mm256_dpbusd_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
65
- {
77
+ _mm256_dpbusd_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
66
78
  return (__m256i)__builtin_ia32_vpdpbusd256((__v8si)__S, (__v32qu)__A,
67
79
  (__v32qi)__B);
68
80
  }
@@ -85,8 +97,7 @@ _mm256_dpbusd_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
85
97
  /// DST[MAX:256] := 0
86
98
  /// \endcode
87
99
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
88
- _mm256_dpbusds_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
89
- {
100
+ _mm256_dpbusds_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
90
101
  return (__m256i)__builtin_ia32_vpdpbusds256((__v8si)__S, (__v32qu)__A,
91
102
  (__v32qi)__B);
92
103
  }
@@ -107,8 +118,7 @@ _mm256_dpbusds_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
107
118
  /// DST[MAX:256] := 0
108
119
  /// \endcode
109
120
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
110
- _mm256_dpwssd_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
111
- {
121
+ _mm256_dpwssd_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
112
122
  return (__m256i)__builtin_ia32_vpdpwssd256((__v8si)__S, (__v16hi)__A,
113
123
  (__v16hi)__B);
114
124
  }
@@ -129,8 +139,7 @@ _mm256_dpwssd_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
129
139
  /// DST[MAX:256] := 0
130
140
  /// \endcode
131
141
  static __inline__ __m256i __DEFAULT_FN_ATTRS256
132
- _mm256_dpwssds_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
133
- {
142
+ _mm256_dpwssds_avx_epi32(__m256i __S, __m256i __A, __m256i __B) {
134
143
  return (__m256i)__builtin_ia32_vpdpwssds256((__v8si)__S, (__v16hi)__A,
135
144
  (__v16hi)__B);
136
145
  }
@@ -153,8 +162,7 @@ _mm256_dpwssds_avx_epi32(__m256i __S, __m256i __A, __m256i __B)
153
162
  /// DST[MAX:128] := 0
154
163
  /// \endcode
155
164
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
156
- _mm_dpbusd_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
157
- {
165
+ _mm_dpbusd_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
158
166
  return (__m128i)__builtin_ia32_vpdpbusd128((__v4si)__S, (__v16qu)__A,
159
167
  (__v16qi)__B);
160
168
  }
@@ -177,8 +185,7 @@ _mm_dpbusd_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
177
185
  /// DST[MAX:128] := 0
178
186
  /// \endcode
179
187
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
180
- _mm_dpbusds_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
181
- {
188
+ _mm_dpbusds_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
182
189
  return (__m128i)__builtin_ia32_vpdpbusds128((__v4si)__S, (__v16qu)__A,
183
190
  (__v16qi)__B);
184
191
  }
@@ -199,8 +206,7 @@ _mm_dpbusds_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
199
206
  /// DST[MAX:128] := 0
200
207
  /// \endcode
201
208
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
202
- _mm_dpwssd_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
203
- {
209
+ _mm_dpwssd_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
204
210
  return (__m128i)__builtin_ia32_vpdpwssd128((__v4si)__S, (__v8hi)__A,
205
211
  (__v8hi)__B);
206
212
  }
@@ -221,8 +227,7 @@ _mm_dpwssd_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
221
227
  /// DST[MAX:128] := 0
222
228
  /// \endcode
223
229
  static __inline__ __m128i __DEFAULT_FN_ATTRS128
224
- _mm_dpwssds_avx_epi32(__m128i __S, __m128i __A, __m128i __B)
225
- {
230
+ _mm_dpwssds_avx_epi32(__m128i __S, __m128i __A, __m128i __B) {
226
231
  return (__m128i)__builtin_ia32_vpdpwssds128((__v4si)__S, (__v8hi)__A,
227
232
  (__v8hi)__B);
228
233
  }
@@ -10,8 +10,14 @@
10
10
  #ifndef __CRC32INTRIN_H
11
11
  #define __CRC32INTRIN_H
12
12
 
13
+ /// We only declare crc32 as a constexpr if we are compiling C++ code
14
+ #if defined(__cplusplus) && (__cplusplus >= 201103L)
15
+ #define __DEFAULT_FN_ATTRS \
16
+ __attribute__((__always_inline__, __nodebug__, __target__("crc32"))) constexpr
17
+ #else
13
18
  #define __DEFAULT_FN_ATTRS \
14
19
  __attribute__((__always_inline__, __nodebug__, __target__("crc32")))
20
+ #endif
15
21
 
16
22
  /// Adds the unsigned integer operand to the CRC-32C checksum of the
17
23
  /// unsigned char operand.
@@ -28,8 +34,7 @@
28
34
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
29
35
  /// operand \a __D.
30
36
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
31
- _mm_crc32_u8(unsigned int __C, unsigned char __D)
32
- {
37
+ _mm_crc32_u8(unsigned int __C, unsigned char __D) {
33
38
  return __builtin_ia32_crc32qi(__C, __D);
34
39
  }
35
40
 
@@ -48,8 +53,7 @@ _mm_crc32_u8(unsigned int __C, unsigned char __D)
48
53
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
49
54
  /// operand \a __D.
50
55
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
51
- _mm_crc32_u16(unsigned int __C, unsigned short __D)
52
- {
56
+ _mm_crc32_u16(unsigned int __C, unsigned short __D) {
53
57
  return __builtin_ia32_crc32hi(__C, __D);
54
58
  }
55
59
 
@@ -68,8 +72,7 @@ _mm_crc32_u16(unsigned int __C, unsigned short __D)
68
72
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
69
73
  /// operand \a __D.
70
74
  static __inline__ unsigned int __DEFAULT_FN_ATTRS
71
- _mm_crc32_u32(unsigned int __C, unsigned int __D)
72
- {
75
+ _mm_crc32_u32(unsigned int __C, unsigned int __D) {
73
76
  return __builtin_ia32_crc32si(__C, __D);
74
77
  }
75
78
 
@@ -89,8 +92,7 @@ _mm_crc32_u32(unsigned int __C, unsigned int __D)
89
92
  /// \returns The result of adding operand \a __C to the CRC-32C checksum of
90
93
  /// operand \a __D.
91
94
  static __inline__ unsigned long long __DEFAULT_FN_ATTRS
92
- _mm_crc32_u64(unsigned long long __C, unsigned long long __D)
93
- {
95
+ _mm_crc32_u64(unsigned long long __C, unsigned long long __D) {
94
96
  return __builtin_ia32_crc32di(__C, __D);
95
97
  }
96
98
  #endif /* __x86_64__ */
@@ -279,8 +279,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_pd(__m128d __a) {
279
279
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
280
280
  /// minimum value between both operands. The upper 64 bits are copied from
281
281
  /// the upper 64 bits of the first source operand.
282
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_sd(__m128d __a,
283
- __m128d __b) {
282
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_min_sd(__m128d __a,
283
+ __m128d __b) {
284
284
  return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b);
285
285
  }
286
286
 
@@ -325,8 +325,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_min_pd(__m128d __a,
325
325
  /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
326
326
  /// maximum value between both operands. The upper 64 bits are copied from
327
327
  /// the upper 64 bits of the first source operand.
328
- static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_sd(__m128d __a,
329
- __m128d __b) {
328
+ static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_max_sd(__m128d __a,
329
+ __m128d __b) {
330
330
  return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b);
331
331
  }
332
332
 
@@ -1343,7 +1343,7 @@ _mm_cvtepi32_pd(__m128i __a) {
1343
1343
  /// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the
1344
1344
  /// converted values. The upper 64 bits are set to zero.
1345
1345
  static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtpd_epi32(__m128d __a) {
1346
- return __builtin_ia32_cvtpd2dq((__v2df)__a);
1346
+ return (__m128i)__builtin_ia32_cvtpd2dq((__v2df)__a);
1347
1347
  }
1348
1348
 
1349
1349
  /// Converts the low-order element of a 128-bit vector of [2 x double]
@@ -2481,9 +2481,9 @@ _mm_mul_epu32(__m128i __a, __m128i __b) {
2481
2481
  /// A 128-bit integer vector containing one of the source operands.
2482
2482
  /// \returns A [2 x i64] vector containing the sums of the sets of absolute
2483
2483
  /// differences between both operands.
2484
- static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sad_epu8(__m128i __a,
2485
- __m128i __b) {
2486
- return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
2484
+ static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR
2485
+ _mm_sad_epu8(__m128i __a, __m128i __b) {
2486
+ return __builtin_ia32_psadbw128((__v16qu)__a, (__v16qu)__b);
2487
2487
  }
2488
2488
 
2489
2489
  /// Subtracts the corresponding 8-bit integer values in the operands.
@@ -0,0 +1,91 @@
1
+ //===-- Definition of macros from endian.h --------------------------------===//
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 __CLANG_ENDIAN_H
10
+ #define __CLANG_ENDIAN_H
11
+
12
+ // If the system has an endian.h, let's use that instead.
13
+ #if __has_include_next(<endian.h>)
14
+ #include_next <endian.h>
15
+ #else
16
+
17
+ #include <stdint.h>
18
+
19
+ // Implementation taken from llvm libc endian-macros.h.
20
+ #ifdef __cplusplus
21
+ #define __CLANG_ENDIAN_CAST(cast, type, value) (cast<type>(value))
22
+ #else
23
+ #define __CLANG_ENDIAN_CAST(cast, type, value) ((type)(value))
24
+ #endif
25
+
26
+ #define LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
27
+ #define BIG_ENDIAN __ORDER_BIG_ENDIAN__
28
+ #define PDP_ENDIAN __ORDER_PDP_ENDIAN__
29
+ #define BYTE_ORDER __BYTE_ORDER__
30
+
31
+ // Define some compatibility macros if they are not defined.
32
+ #ifndef __BYTE_ORDER
33
+ #define __BYTE_ORDER BYTE_ORDER
34
+ #endif
35
+ #ifndef __LITTLE_ENDIAN
36
+ #define __LITTLE_ENDIAN LITTLE_ENDIAN
37
+ #endif
38
+ #ifndef __BIG_ENDIAN
39
+ #define __BIG_ENDIAN BIG_ENDIAN
40
+ #endif
41
+ #ifndef __PDP_ENDIAN
42
+ #define __PDP_ENDIAN PDP_ENDIAN
43
+ #endif
44
+
45
+ #if BYTE_ORDER == LITTLE_ENDIAN
46
+
47
+ #define htobe16(x) \
48
+ __builtin_bswap16(__CLANG_ENDIAN_CAST(static_cast, uint16_t, x))
49
+ #define htobe32(x) \
50
+ __builtin_bswap32(__CLANG_ENDIAN_CAST(static_cast, uint32_t, x))
51
+ #define htobe64(x) \
52
+ __builtin_bswap64(__CLANG_ENDIAN_CAST(static_cast, uint64_t, x))
53
+ #define htole16(x) __CLANG_ENDIAN_CAST(static_cast, uint16_t, x)
54
+ #define htole32(x) __CLANG_ENDIAN_CAST(static_cast, uint32_t, x)
55
+ #define htole64(x) __CLANG_ENDIAN_CAST(static_cast, uint64_t, x)
56
+ #define be16toh(x) \
57
+ __builtin_bswap16(__CLANG_ENDIAN_CAST(static_cast, uint16_t, x))
58
+ #define be32toh(x) \
59
+ __builtin_bswap32(__CLANG_ENDIAN_CAST(static_cast, uint32_t, x))
60
+ #define be64toh(x) \
61
+ __builtin_bswap64(__CLANG_ENDIAN_CAST(static_cast, uint64_t, x))
62
+ #define le16toh(x) __CLANG_ENDIAN_CAST(static_cast, uint16_t, x)
63
+ #define le32toh(x) __CLANG_ENDIAN_CAST(static_cast, uint32_t, x)
64
+ #define le64toh(x) __CLANG_ENDIAN_CAST(static_cast, uint64_t, x)
65
+
66
+ #elif BYTE_ORDER == BIG_ENDIAN
67
+
68
+ #define htobe16(x) __CLANG_ENDIAN_CAST(static_cast, uint16_t, x)
69
+ #define htobe32(x) __CLANG_ENDIAN_CAST(static_cast, uint32_t, x)
70
+ #define htobe64(x) __CLANG_ENDIAN_CAST(static_cast, uint64_t, x)
71
+ #define htole16(x) \
72
+ __builtin_bswap16(__CLANG_ENDIAN_CAST(static_cast, uint16_t, x))
73
+ #define htole32(x) \
74
+ __builtin_bswap32(__CLANG_ENDIAN_CAST(static_cast, uint32_t, x))
75
+ #define htole64(x) \
76
+ __builtin_bswap64(__CLANG_ENDIAN_CAST(static_cast, uint64_t, x))
77
+ #define be16toh(x) __CLANG_ENDIAN_CAST(static_cast, uint16_t, x)
78
+ #define be32toh(x) __CLANG_ENDIAN_CAST(static_cast, uint32_t, x)
79
+ #define be64toh(x) __CLANG_ENDIAN_CAST(static_cast, uint64_t, x)
80
+ #define le16toh(x) \
81
+ __builtin_bswap16(__CLANG_ENDIAN_CAST(static_cast, uint16_t, x))
82
+ #define le32toh(x) \
83
+ __builtin_bswap32(__CLANG_ENDIAN_CAST(static_cast, uint32_t, x))
84
+ #define le64toh(x) \
85
+ __builtin_bswap64(__CLANG_ENDIAN_CAST(static_cast, uint64_t, x))
86
+
87
+ #else
88
+ #error "Unsupported endianness"
89
+ #endif
90
+ #endif // __has_include_next
91
+ #endif // __CLANG_ENDIAN_H
@@ -380,13 +380,13 @@ TS FuzzedDataProvider::ConvertUnsignedToSigned(TU value) {
380
380
  static_assert(!std::numeric_limits<TU>::is_signed,
381
381
  "Source type must be unsigned.");
382
382
 
383
- // TODO(Dor1s): change to `if constexpr` once C++17 becomes mainstream.
384
- if (std::numeric_limits<TS>::is_modulo)
383
+ if constexpr (std::numeric_limits<TS>::is_modulo)
385
384
  return static_cast<TS>(value);
386
385
 
387
386
  // Avoid using implementation-defined unsigned to signed conversions.
388
387
  // To learn more, see https://stackoverflow.com/questions/13150449.
389
- if (value <= std::numeric_limits<TS>::max()) {
388
+ constexpr auto TS_max = static_cast<TU>(std::numeric_limits<TS>::max());
389
+ if (value <= TS_max) {
390
390
  return static_cast<TS>(value);
391
391
  } else {
392
392
  constexpr auto TS_min = std::numeric_limits<TS>::min();