@cpp-linter/clang-tidy-darwin-x64 13.0.0 → 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.
- package/README.md +2 -2
- package/bin/clang-tidy +2 -2
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_complex_builtins.h +3 -3
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_intrinsics.h +38 -6
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_libdevice_declares.h +6 -0
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_math.h +1 -1
- package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_runtime_wrapper.h +62 -7
- package/lib/clang/16/include/__clang_cuda_texture_intrinsics.h +742 -0
- package/lib/clang/{13.0.0 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
- package/lib/clang/{13.0.0 → 16}/include/__clang_hip_math.h +10 -13
- package/lib/clang/{13.0.0 → 16}/include/__clang_hip_runtime_wrapper.h +18 -4
- package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
- package/lib/clang/{13.0.0 → 16}/include/__wmmintrin_aes.h +1 -1
- package/lib/clang/{13.0.0 → 16}/include/__wmmintrin_pclmul.h +10 -10
- package/lib/clang/{13.0.0 → 16}/include/altivec.h +691 -342
- package/lib/clang/{13.0.0 → 16}/include/ammintrin.h +4 -0
- package/lib/clang/16/include/amxfp16intrin.h +58 -0
- package/lib/clang/{13.0.0 → 16}/include/amxintrin.h +49 -18
- package/lib/clang/{13.0.0 → 16}/include/arm_acle.h +80 -73
- package/lib/clang/{13.0.0 → 16}/include/arm_fp16.h +90 -90
- package/lib/clang/{13.0.0 → 16}/include/arm_neon.h +28607 -28779
- package/lib/clang/16/include/arm_neon_sve_bridge.h +182 -0
- package/lib/clang/{13.0.0 → 16}/include/arm_sve.h +7848 -7996
- package/lib/clang/{13.0.0 → 16}/include/avx2intrin.h +189 -189
- package/lib/clang/{13.0.0 → 16}/include/avx512bf16intrin.h +21 -18
- package/lib/clang/{13.0.0 → 16}/include/avx512bwintrin.h +83 -83
- package/lib/clang/{13.0.0 → 16}/include/avx512dqintrin.h +365 -365
- package/lib/clang/{13.0.0 → 16}/include/avx512erintrin.h +102 -102
- package/lib/clang/{13.0.0 → 16}/include/avx512fintrin.h +1627 -1620
- package/lib/clang/16/include/avx512fp16intrin.h +3346 -0
- package/lib/clang/{13.0.0 → 16}/include/avx512ifmavlintrin.h +13 -27
- package/lib/clang/{13.0.0 → 16}/include/avx512vbmi2intrin.h +48 -48
- package/lib/clang/{13.0.0 → 16}/include/avx512vlbf16intrin.h +82 -41
- package/lib/clang/{13.0.0 → 16}/include/avx512vlbwintrin.h +454 -102
- package/lib/clang/{13.0.0 → 16}/include/avx512vldqintrin.h +134 -134
- package/lib/clang/16/include/avx512vlfp16intrin.h +2071 -0
- package/lib/clang/{13.0.0 → 16}/include/avx512vlintrin.h +596 -610
- package/lib/clang/{13.0.0 → 16}/include/avx512vlvbmi2intrin.h +96 -96
- package/lib/clang/{13.0.0 → 16}/include/avx512vlvnniintrin.h +24 -24
- package/lib/clang/16/include/avxifmaintrin.h +177 -0
- package/lib/clang/{13.0.0 → 16}/include/avxintrin.h +266 -224
- package/lib/clang/16/include/avxneconvertintrin.h +484 -0
- package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
- package/lib/clang/{13.0.0 → 16}/include/avxvnniintrin.h +16 -16
- package/lib/clang/{13.0.0 → 16}/include/bmiintrin.h +6 -2
- package/lib/clang/{13.0.0 → 16}/include/cetintrin.h +20 -4
- package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
- package/lib/clang/{13.0.0 → 16}/include/cpuid.h +14 -2
- package/lib/clang/16/include/crc32intrin.h +100 -0
- package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
- package/lib/clang/{13.0.0 → 16}/include/emmintrin.h +573 -779
- package/lib/clang/{13.0.0 → 16}/include/f16cintrin.h +4 -4
- package/lib/clang/{13.0.0 → 16}/include/float.h +22 -6
- package/lib/clang/{13.0.0 → 16}/include/gfniintrin.h +54 -53
- package/lib/clang/{13.0.0 → 16}/include/hexagon_protos.h +0 -11
- package/lib/clang/{13.0.0 → 16}/include/hexagon_types.h +0 -32
- package/lib/clang/16/include/hlsl/hlsl_basic_types.h +67 -0
- package/lib/clang/16/include/hlsl/hlsl_intrinsics.h +223 -0
- package/lib/clang/16/include/hlsl.h +15 -0
- package/lib/clang/{13.0.0 → 16}/include/hresetintrin.h +2 -2
- package/lib/clang/{13.0.0 → 16}/include/hvx_hexagon_protos.h +1200 -409
- package/lib/clang/{13.0.0 → 16}/include/ia32intrin.h +17 -17
- package/lib/clang/{13.0.0 → 16}/include/immintrin.h +74 -24
- package/lib/clang/{13.0.0 → 16}/include/intrin.h +34 -35
- package/lib/clang/{13.0.0 → 16}/include/keylockerintrin.h +24 -30
- package/lib/clang/16/include/larchintrin.h +234 -0
- package/lib/clang/{13.0.0 → 16}/include/limits.h +22 -1
- package/lib/clang/{13.0.0 → 16}/include/mm_malloc.h +3 -3
- package/lib/clang/{13.0.0 → 16}/include/mmintrin.h +4 -0
- package/lib/clang/{13.0.0 → 16}/include/nmmintrin.h +4 -0
- package/lib/clang/{13.0.0 → 16}/include/opencl-c-base.h +98 -11
- package/lib/clang/{13.0.0 → 16}/include/opencl-c.h +7252 -6208
- package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex +10 -1
- package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex.h +9 -0
- package/lib/clang/{13.0.0 → 16}/include/pmmintrin.h +5 -1
- package/lib/clang/16/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/lib/clang/16/include/ppc_wrappers/bmiintrin.h +165 -0
- package/lib/clang/16/include/ppc_wrappers/emmintrin.h +2268 -0
- package/lib/clang/16/include/ppc_wrappers/immintrin.h +27 -0
- package/lib/clang/{13.0.0 → 16}/include/ppc_wrappers/mm_malloc.h +12 -17
- package/lib/clang/{13.0.0 → 16}/include/ppc_wrappers/mmintrin.h +389 -386
- package/lib/clang/16/include/ppc_wrappers/pmmintrin.h +145 -0
- package/lib/clang/16/include/ppc_wrappers/smmintrin.h +663 -0
- package/lib/clang/16/include/ppc_wrappers/tmmintrin.h +453 -0
- package/lib/clang/{13.0.0/include/stdnoreturn.h → 16/include/ppc_wrappers/x86gprintrin.h} +7 -6
- package/lib/clang/16/include/ppc_wrappers/x86intrin.h +28 -0
- package/lib/clang/16/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/lib/clang/16/include/prfchiintrin.h +61 -0
- package/lib/clang/{13.0.0 → 16}/include/prfchwintrin.h +5 -2
- package/lib/clang/16/include/raointintrin.h +203 -0
- package/lib/clang/16/include/rdpruintrin.h +57 -0
- package/lib/clang/{13.0.0 → 16}/include/rdseedintrin.h +3 -3
- package/lib/clang/16/include/riscv_vector.h +211 -0
- package/lib/clang/{13.0.0 → 16}/include/rtmintrin.h +1 -1
- package/lib/clang/{13.0.0 → 16}/include/smmintrin.h +260 -362
- package/lib/clang/{13.0.0 → 16}/include/stdarg.h +23 -7
- package/lib/clang/{13.0.0 → 16}/include/stdatomic.h +14 -1
- package/lib/clang/{13.0.0 → 16}/include/stdbool.h +10 -7
- package/lib/clang/{13.0.0 → 16}/include/stddef.h +9 -2
- package/lib/clang/{13.0.0 → 16}/include/stdint.h +311 -25
- package/lib/clang/16/include/stdnoreturn.h +29 -0
- package/lib/clang/{13.0.0 → 16}/include/tmmintrin.h +10 -6
- package/lib/clang/{13.0.0 → 16}/include/uintrintrin.h +8 -8
- package/lib/clang/{13.0.0 → 16}/include/unwind.h +12 -7
- package/lib/clang/{13.0.0 → 16}/include/vaesintrin.h +1 -1
- package/lib/clang/16/include/velintrin.h +71 -0
- package/lib/clang/16/include/velintrin_approx.h +120 -0
- package/lib/clang/16/include/velintrin_gen.h +1257 -0
- package/lib/clang/{13.0.0 → 16}/include/vpclmulqdqintrin.h +6 -6
- package/lib/clang/{13.0.0 → 16}/include/wasm_simd128.h +169 -26
- package/lib/clang/{13.0.0 → 16}/include/wmmintrin.h +4 -0
- package/lib/clang/16/include/x86gprintrin.h +65 -0
- package/lib/clang/{13.0.0 → 16}/include/x86intrin.h +4 -0
- package/lib/clang/{13.0.0 → 16}/include/xmmintrin.h +19 -10
- package/lib/clang/{13.0.0 → 16}/include/xopintrin.h +31 -31
- package/package.json +6 -6
- package/lib/clang/13.0.0/include/ppc_wrappers/emmintrin.h +0 -2324
- package/lib/clang/13.0.0/include/ppc_wrappers/pmmintrin.h +0 -150
- package/lib/clang/13.0.0/include/ppc_wrappers/smmintrin.h +0 -109
- package/lib/clang/13.0.0/include/ppc_wrappers/tmmintrin.h +0 -495
- package/lib/clang/13.0.0/include/ppc_wrappers/xmmintrin.h +0 -1843
- package/lib/clang/13.0.0/include/riscv_vector.h +0 -123865
- package/lib/clang/13.0.0/include/x86gprintrin.h +0 -23
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/adxintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm64intr.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_bf16.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_cde.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_cmse.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/arm_mve.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/armintr.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/builtins.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cet.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/clwbintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/clzerointrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/fma4intrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/fmaintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/htmintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/inttypes.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/iso646.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/lwpintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/mm3dnow.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/module.modulemap +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/movdirintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/msa.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/pkuintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/popcntintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/s390intrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/serializeintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/sgxintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/shaintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/stdalign.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/tbmintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/tgmath.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/vadefs.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/varargs.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/vecintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{13.0.0 → 16}/include/xtestintrin.h +0 -0
|
@@ -18,14 +18,21 @@
|
|
|
18
18
|
#define __DEFAULT_FN_ATTRS128 __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(128)))
|
|
19
19
|
#define __DEFAULT_FN_ATTRS256 __attribute__((__always_inline__, __nodebug__, __target__("avx512ifma,avx512vl"), __min_vector_width__(256)))
|
|
20
20
|
|
|
21
|
+
#define _mm_madd52hi_epu64(X, Y, Z) \
|
|
22
|
+
((__m128i)__builtin_ia32_vpmadd52huq128((__v2di)(X), (__v2di)(Y), \
|
|
23
|
+
(__v2di)(Z)))
|
|
21
24
|
|
|
25
|
+
#define _mm256_madd52hi_epu64(X, Y, Z) \
|
|
26
|
+
((__m256i)__builtin_ia32_vpmadd52huq256((__v4di)(X), (__v4di)(Y), \
|
|
27
|
+
(__v4di)(Z)))
|
|
22
28
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
#define _mm_madd52lo_epu64(X, Y, Z) \
|
|
30
|
+
((__m128i)__builtin_ia32_vpmadd52luq128((__v2di)(X), (__v2di)(Y), \
|
|
31
|
+
(__v2di)(Z)))
|
|
32
|
+
|
|
33
|
+
#define _mm256_madd52lo_epu64(X, Y, Z) \
|
|
34
|
+
((__m256i)__builtin_ia32_vpmadd52luq256((__v4di)(X), (__v4di)(Y), \
|
|
35
|
+
(__v4di)(Z)))
|
|
29
36
|
|
|
30
37
|
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
31
38
|
_mm_mask_madd52hi_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
|
|
@@ -43,13 +50,6 @@ _mm_maskz_madd52hi_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z)
|
|
|
43
50
|
(__v2di)_mm_setzero_si128());
|
|
44
51
|
}
|
|
45
52
|
|
|
46
|
-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
47
|
-
_mm256_madd52hi_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
|
|
48
|
-
{
|
|
49
|
-
return (__m256i)__builtin_ia32_vpmadd52huq256((__v4di)__X, (__v4di)__Y,
|
|
50
|
-
(__v4di)__Z);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
53
|
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
54
54
|
_mm256_mask_madd52hi_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
|
|
55
55
|
{
|
|
@@ -66,13 +66,6 @@ _mm256_maskz_madd52hi_epu64 (__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z
|
|
|
66
66
|
(__v4di)_mm256_setzero_si256());
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
70
|
-
_mm_madd52lo_epu64 (__m128i __X, __m128i __Y, __m128i __Z)
|
|
71
|
-
{
|
|
72
|
-
return (__m128i)__builtin_ia32_vpmadd52luq128((__v2di)__X, (__v2di)__Y,
|
|
73
|
-
(__v2di)__Z);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
69
|
static __inline__ __m128i __DEFAULT_FN_ATTRS128
|
|
77
70
|
_mm_mask_madd52lo_epu64 (__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y)
|
|
78
71
|
{
|
|
@@ -89,13 +82,6 @@ _mm_maskz_madd52lo_epu64 (__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z)
|
|
|
89
82
|
(__v2di)_mm_setzero_si128());
|
|
90
83
|
}
|
|
91
84
|
|
|
92
|
-
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
93
|
-
_mm256_madd52lo_epu64 (__m256i __X, __m256i __Y, __m256i __Z)
|
|
94
|
-
{
|
|
95
|
-
return (__m256i)__builtin_ia32_vpmadd52luq256((__v4di)__X, (__v4di)__Y,
|
|
96
|
-
(__v4di)__Z);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
85
|
static __inline__ __m256i __DEFAULT_FN_ATTRS256
|
|
100
86
|
_mm256_mask_madd52lo_epu64 (__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y)
|
|
101
87
|
{
|
|
@@ -129,88 +129,88 @@ _mm512_maskz_expandloadu_epi8(__mmask64 __U, void const *__P)
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
#define _mm512_shldi_epi64(A, B, I) \
|
|
132
|
-
(__m512i)__builtin_ia32_vpshldq512((__v8di)(__m512i)(A), \
|
|
133
|
-
|
|
132
|
+
((__m512i)__builtin_ia32_vpshldq512((__v8di)(__m512i)(A), \
|
|
133
|
+
(__v8di)(__m512i)(B), (int)(I)))
|
|
134
134
|
|
|
135
135
|
#define _mm512_mask_shldi_epi64(S, U, A, B, I) \
|
|
136
|
-
(__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
137
|
+
(__v8di)_mm512_shldi_epi64((A), (B), (I)), \
|
|
138
|
+
(__v8di)(__m512i)(S)))
|
|
139
139
|
|
|
140
140
|
#define _mm512_maskz_shldi_epi64(U, A, B, I) \
|
|
141
|
-
(__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
142
|
+
(__v8di)_mm512_shldi_epi64((A), (B), (I)), \
|
|
143
|
+
(__v8di)_mm512_setzero_si512()))
|
|
144
144
|
|
|
145
145
|
#define _mm512_shldi_epi32(A, B, I) \
|
|
146
|
-
(__m512i)__builtin_ia32_vpshldd512((__v16si)(__m512i)(A), \
|
|
147
|
-
|
|
146
|
+
((__m512i)__builtin_ia32_vpshldd512((__v16si)(__m512i)(A), \
|
|
147
|
+
(__v16si)(__m512i)(B), (int)(I)))
|
|
148
148
|
|
|
149
149
|
#define _mm512_mask_shldi_epi32(S, U, A, B, I) \
|
|
150
|
-
(__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
151
|
+
(__v16si)_mm512_shldi_epi32((A), (B), (I)), \
|
|
152
|
+
(__v16si)(__m512i)(S)))
|
|
153
153
|
|
|
154
154
|
#define _mm512_maskz_shldi_epi32(U, A, B, I) \
|
|
155
|
-
(__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
156
|
+
(__v16si)_mm512_shldi_epi32((A), (B), (I)), \
|
|
157
|
+
(__v16si)_mm512_setzero_si512()))
|
|
158
158
|
|
|
159
159
|
#define _mm512_shldi_epi16(A, B, I) \
|
|
160
|
-
(__m512i)__builtin_ia32_vpshldw512((__v32hi)(__m512i)(A), \
|
|
161
|
-
|
|
160
|
+
((__m512i)__builtin_ia32_vpshldw512((__v32hi)(__m512i)(A), \
|
|
161
|
+
(__v32hi)(__m512i)(B), (int)(I)))
|
|
162
162
|
|
|
163
163
|
#define _mm512_mask_shldi_epi16(S, U, A, B, I) \
|
|
164
|
-
(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
165
|
+
(__v32hi)_mm512_shldi_epi16((A), (B), (I)), \
|
|
166
|
+
(__v32hi)(__m512i)(S)))
|
|
167
167
|
|
|
168
168
|
#define _mm512_maskz_shldi_epi16(U, A, B, I) \
|
|
169
|
-
(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
170
|
+
(__v32hi)_mm512_shldi_epi16((A), (B), (I)), \
|
|
171
|
+
(__v32hi)_mm512_setzero_si512()))
|
|
172
172
|
|
|
173
173
|
#define _mm512_shrdi_epi64(A, B, I) \
|
|
174
|
-
(__m512i)__builtin_ia32_vpshrdq512((__v8di)(__m512i)(A), \
|
|
175
|
-
|
|
174
|
+
((__m512i)__builtin_ia32_vpshrdq512((__v8di)(__m512i)(A), \
|
|
175
|
+
(__v8di)(__m512i)(B), (int)(I)))
|
|
176
176
|
|
|
177
177
|
#define _mm512_mask_shrdi_epi64(S, U, A, B, I) \
|
|
178
|
-
(__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
179
|
+
(__v8di)_mm512_shrdi_epi64((A), (B), (I)), \
|
|
180
|
+
(__v8di)(__m512i)(S)))
|
|
181
181
|
|
|
182
182
|
#define _mm512_maskz_shrdi_epi64(U, A, B, I) \
|
|
183
|
-
(__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
184
|
-
|
|
185
|
-
|
|
183
|
+
((__m512i)__builtin_ia32_selectq_512((__mmask8)(U), \
|
|
184
|
+
(__v8di)_mm512_shrdi_epi64((A), (B), (I)), \
|
|
185
|
+
(__v8di)_mm512_setzero_si512()))
|
|
186
186
|
|
|
187
187
|
#define _mm512_shrdi_epi32(A, B, I) \
|
|
188
|
-
(__m512i)__builtin_ia32_vpshrdd512((__v16si)(__m512i)(A), \
|
|
189
|
-
|
|
188
|
+
((__m512i)__builtin_ia32_vpshrdd512((__v16si)(__m512i)(A), \
|
|
189
|
+
(__v16si)(__m512i)(B), (int)(I)))
|
|
190
190
|
|
|
191
191
|
#define _mm512_mask_shrdi_epi32(S, U, A, B, I) \
|
|
192
|
-
(__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
193
|
-
|
|
194
|
-
|
|
192
|
+
((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
193
|
+
(__v16si)_mm512_shrdi_epi32((A), (B), (I)), \
|
|
194
|
+
(__v16si)(__m512i)(S)))
|
|
195
195
|
|
|
196
196
|
#define _mm512_maskz_shrdi_epi32(U, A, B, I) \
|
|
197
|
-
(__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
198
|
-
|
|
199
|
-
|
|
197
|
+
((__m512i)__builtin_ia32_selectd_512((__mmask16)(U), \
|
|
198
|
+
(__v16si)_mm512_shrdi_epi32((A), (B), (I)), \
|
|
199
|
+
(__v16si)_mm512_setzero_si512()))
|
|
200
200
|
|
|
201
201
|
#define _mm512_shrdi_epi16(A, B, I) \
|
|
202
|
-
(__m512i)__builtin_ia32_vpshrdw512((__v32hi)(__m512i)(A), \
|
|
203
|
-
|
|
202
|
+
((__m512i)__builtin_ia32_vpshrdw512((__v32hi)(__m512i)(A), \
|
|
203
|
+
(__v32hi)(__m512i)(B), (int)(I)))
|
|
204
204
|
|
|
205
205
|
#define _mm512_mask_shrdi_epi16(S, U, A, B, I) \
|
|
206
|
-
(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
207
|
+
(__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \
|
|
208
|
+
(__v32hi)(__m512i)(S)))
|
|
209
209
|
|
|
210
210
|
#define _mm512_maskz_shrdi_epi16(U, A, B, I) \
|
|
211
|
-
(__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
((__m512i)__builtin_ia32_selectw_512((__mmask32)(U), \
|
|
212
|
+
(__v32hi)_mm512_shrdi_epi16((A), (B), (I)), \
|
|
213
|
+
(__v32hi)_mm512_setzero_si512()))
|
|
214
214
|
|
|
215
215
|
static __inline__ __m512i __DEFAULT_FN_ATTRS
|
|
216
216
|
_mm512_shldv_epi64(__m512i __A, __m512i __B, __m512i __C)
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
#error "Never use <avx512vlbf16intrin.h> directly; include <immintrin.h> instead."
|
|
11
11
|
#endif
|
|
12
12
|
|
|
13
|
+
#ifdef __SSE2__
|
|
14
|
+
|
|
13
15
|
#ifndef __AVX512VLBF16INTRIN_H
|
|
14
16
|
#define __AVX512VLBF16INTRIN_H
|
|
15
17
|
|
|
16
|
-
typedef short __m128bh __attribute__((__vector_size__(16), __aligned__(16)));
|
|
17
|
-
|
|
18
18
|
#define __DEFAULT_FN_ATTRS128 \
|
|
19
19
|
__attribute__((__always_inline__, __nodebug__, \
|
|
20
20
|
__target__("avx512vl, avx512bf16"), __min_vector_width__(128)))
|
|
@@ -59,9 +59,9 @@ _mm_cvtne2ps_pbh(__m128 __A, __m128 __B) {
|
|
|
59
59
|
/// conversion of __B, and higher 64 bits come from conversion of __A.
|
|
60
60
|
static __inline__ __m128bh __DEFAULT_FN_ATTRS128
|
|
61
61
|
_mm_mask_cvtne2ps_pbh(__m128bh __W, __mmask8 __U, __m128 __A, __m128 __B) {
|
|
62
|
-
return (__m128bh)
|
|
63
|
-
(
|
|
64
|
-
(
|
|
62
|
+
return (__m128bh)__builtin_ia32_selectpbf_128((__mmask8)__U,
|
|
63
|
+
(__v8bf)_mm_cvtne2ps_pbh(__A, __B),
|
|
64
|
+
(__v8bf)__W);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
/// Convert Two Packed Single Data to One Packed BF16 Data.
|
|
@@ -81,9 +81,9 @@ _mm_mask_cvtne2ps_pbh(__m128bh __W, __mmask8 __U, __m128 __A, __m128 __B) {
|
|
|
81
81
|
/// conversion of __B, and higher 64 bits come from conversion of __A.
|
|
82
82
|
static __inline__ __m128bh __DEFAULT_FN_ATTRS128
|
|
83
83
|
_mm_maskz_cvtne2ps_pbh(__mmask8 __U, __m128 __A, __m128 __B) {
|
|
84
|
-
return (__m128bh)
|
|
85
|
-
(
|
|
86
|
-
(
|
|
84
|
+
return (__m128bh)__builtin_ia32_selectpbf_128((__mmask8)__U,
|
|
85
|
+
(__v8bf)_mm_cvtne2ps_pbh(__A, __B),
|
|
86
|
+
(__v8bf)_mm_setzero_si128());
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
/// Convert Two Packed Single Data to One Packed BF16 Data.
|
|
@@ -123,9 +123,9 @@ _mm256_cvtne2ps_pbh(__m256 __A, __m256 __B) {
|
|
|
123
123
|
/// conversion of __B, and higher 128 bits come from conversion of __A.
|
|
124
124
|
static __inline__ __m256bh __DEFAULT_FN_ATTRS256
|
|
125
125
|
_mm256_mask_cvtne2ps_pbh(__m256bh __W, __mmask16 __U, __m256 __A, __m256 __B) {
|
|
126
|
-
return (__m256bh)
|
|
127
|
-
(
|
|
128
|
-
(
|
|
126
|
+
return (__m256bh)__builtin_ia32_selectpbf_256((__mmask16)__U,
|
|
127
|
+
(__v16bf)_mm256_cvtne2ps_pbh(__A, __B),
|
|
128
|
+
(__v16bf)__W);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
/// Convert Two Packed Single Data to One Packed BF16 Data.
|
|
@@ -145,9 +145,9 @@ _mm256_mask_cvtne2ps_pbh(__m256bh __W, __mmask16 __U, __m256 __A, __m256 __B) {
|
|
|
145
145
|
/// conversion of __B, and higher 128 bits come from conversion of __A.
|
|
146
146
|
static __inline__ __m256bh __DEFAULT_FN_ATTRS256
|
|
147
147
|
_mm256_maskz_cvtne2ps_pbh(__mmask16 __U, __m256 __A, __m256 __B) {
|
|
148
|
-
return (__m256bh)
|
|
149
|
-
(
|
|
150
|
-
(
|
|
148
|
+
return (__m256bh)__builtin_ia32_selectpbf_256((__mmask16)__U,
|
|
149
|
+
(__v16bf)_mm256_cvtne2ps_pbh(__A, __B),
|
|
150
|
+
(__v16bf)_mm256_setzero_si256());
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
/// Convert Packed Single Data to Packed BF16 Data.
|
|
@@ -160,12 +160,8 @@ _mm256_maskz_cvtne2ps_pbh(__mmask16 __U, __m256 __A, __m256 __B) {
|
|
|
160
160
|
/// A 128-bit vector of [4 x float].
|
|
161
161
|
/// \returns A 128-bit vector of [8 x bfloat] whose lower 64 bits come from
|
|
162
162
|
/// conversion of __A, and higher 64 bits are 0.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
|
|
166
|
-
(__v8hi)_mm_undefined_si128(),
|
|
167
|
-
(__mmask8)-1);
|
|
168
|
-
}
|
|
163
|
+
#define _mm_cvtneps_pbh(A) \
|
|
164
|
+
((__m128bh)__builtin_ia32_vcvtneps2bf16128((__v4sf)(A)))
|
|
169
165
|
|
|
170
166
|
/// Convert Packed Single Data to Packed BF16 Data.
|
|
171
167
|
///
|
|
@@ -185,7 +181,7 @@ _mm_cvtneps_pbh(__m128 __A) {
|
|
|
185
181
|
static __inline__ __m128bh __DEFAULT_FN_ATTRS128
|
|
186
182
|
_mm_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m128 __A) {
|
|
187
183
|
return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
|
|
188
|
-
(
|
|
184
|
+
(__v8bf)__W,
|
|
189
185
|
(__mmask8)__U);
|
|
190
186
|
}
|
|
191
187
|
|
|
@@ -205,7 +201,7 @@ _mm_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m128 __A) {
|
|
|
205
201
|
static __inline__ __m128bh __DEFAULT_FN_ATTRS128
|
|
206
202
|
_mm_maskz_cvtneps_pbh(__mmask8 __U, __m128 __A) {
|
|
207
203
|
return (__m128bh)__builtin_ia32_cvtneps2bf16_128_mask((__v4sf) __A,
|
|
208
|
-
(
|
|
204
|
+
(__v8bf)_mm_setzero_si128(),
|
|
209
205
|
(__mmask8)__U);
|
|
210
206
|
}
|
|
211
207
|
|
|
@@ -218,12 +214,8 @@ _mm_maskz_cvtneps_pbh(__mmask8 __U, __m128 __A) {
|
|
|
218
214
|
/// \param __A
|
|
219
215
|
/// A 256-bit vector of [8 x float].
|
|
220
216
|
/// \returns A 128-bit vector of [8 x bfloat] comes from conversion of __A.
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
|
|
224
|
-
(__v8hi)_mm_undefined_si128(),
|
|
225
|
-
(__mmask8)-1);
|
|
226
|
-
}
|
|
217
|
+
#define _mm256_cvtneps_pbh(A) \
|
|
218
|
+
((__m128bh)__builtin_ia32_vcvtneps2bf16256((__v8sf)(A)))
|
|
227
219
|
|
|
228
220
|
/// Convert Packed Single Data to Packed BF16 Data.
|
|
229
221
|
///
|
|
@@ -242,7 +234,7 @@ _mm256_cvtneps_pbh(__m256 __A) {
|
|
|
242
234
|
static __inline__ __m128bh __DEFAULT_FN_ATTRS256
|
|
243
235
|
_mm256_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m256 __A) {
|
|
244
236
|
return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
|
|
245
|
-
(
|
|
237
|
+
(__v8bf)__W,
|
|
246
238
|
(__mmask8)__U);
|
|
247
239
|
}
|
|
248
240
|
|
|
@@ -261,7 +253,7 @@ _mm256_mask_cvtneps_pbh(__m128bh __W, __mmask8 __U, __m256 __A) {
|
|
|
261
253
|
static __inline__ __m128bh __DEFAULT_FN_ATTRS256
|
|
262
254
|
_mm256_maskz_cvtneps_pbh(__mmask8 __U, __m256 __A) {
|
|
263
255
|
return (__m128bh)__builtin_ia32_cvtneps2bf16_256_mask((__v8sf)__A,
|
|
264
|
-
(
|
|
256
|
+
(__v8bf)_mm_setzero_si128(),
|
|
265
257
|
(__mmask8)__U);
|
|
266
258
|
}
|
|
267
259
|
|
|
@@ -282,8 +274,8 @@ _mm256_maskz_cvtneps_pbh(__mmask8 __U, __m256 __A) {
|
|
|
282
274
|
static __inline__ __m128 __DEFAULT_FN_ATTRS128
|
|
283
275
|
_mm_dpbf16_ps(__m128 __D, __m128bh __A, __m128bh __B) {
|
|
284
276
|
return (__m128)__builtin_ia32_dpbf16ps_128((__v4sf)__D,
|
|
285
|
-
(
|
|
286
|
-
(
|
|
277
|
+
(__v8bf)__A,
|
|
278
|
+
(__v8bf)__B);
|
|
287
279
|
}
|
|
288
280
|
|
|
289
281
|
/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
|
|
@@ -351,8 +343,8 @@ _mm_maskz_dpbf16_ps(__mmask8 __U, __m128 __D, __m128bh __A, __m128bh __B) {
|
|
|
351
343
|
static __inline__ __m256 __DEFAULT_FN_ATTRS256
|
|
352
344
|
_mm256_dpbf16_ps(__m256 __D, __m256bh __A, __m256bh __B) {
|
|
353
345
|
return (__m256)__builtin_ia32_dpbf16ps_256((__v8sf)__D,
|
|
354
|
-
(
|
|
355
|
-
(
|
|
346
|
+
(__v16bf)__A,
|
|
347
|
+
(__v16bf)__B);
|
|
356
348
|
}
|
|
357
349
|
|
|
358
350
|
/// Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
|
|
@@ -413,11 +405,23 @@ _mm256_maskz_dpbf16_ps(__mmask8 __U, __m256 __D, __m256bh __A, __m256bh __B) {
|
|
|
413
405
|
/// A float data.
|
|
414
406
|
/// \returns A bf16 data whose sign field and exponent field keep unchanged,
|
|
415
407
|
/// and fraction field is truncated to 7 bits.
|
|
416
|
-
static __inline__
|
|
408
|
+
static __inline__ __bf16 __DEFAULT_FN_ATTRS128 _mm_cvtness_sbh(float __A) {
|
|
417
409
|
__v4sf __V = {__A, 0, 0, 0};
|
|
418
|
-
|
|
419
|
-
(__v4sf)__V, (
|
|
420
|
-
return __R[0];
|
|
410
|
+
__v8bf __R = __builtin_ia32_cvtneps2bf16_128_mask(
|
|
411
|
+
(__v4sf)__V, (__v8bf)_mm_undefined_si128(), (__mmask8)-1);
|
|
412
|
+
return (__bf16)__R[0];
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/// Convert Packed BF16 Data to Packed float Data.
|
|
416
|
+
///
|
|
417
|
+
/// \headerfile <x86intrin.h>
|
|
418
|
+
///
|
|
419
|
+
/// \param __A
|
|
420
|
+
/// A 128-bit vector of [4 x bfloat].
|
|
421
|
+
/// \returns A 128-bit vector of [4 x float] come from conversion of __A
|
|
422
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtpbh_ps(__m128bh __A) {
|
|
423
|
+
return _mm_castsi128_ps(
|
|
424
|
+
(__m128i)_mm_slli_epi32((__m128i)_mm_cvtepi16_epi32((__m128i)__A), 16));
|
|
421
425
|
}
|
|
422
426
|
|
|
423
427
|
/// Convert Packed BF16 Data to Packed float Data.
|
|
@@ -426,12 +430,28 @@ static __inline__ __bfloat16 __DEFAULT_FN_ATTRS128 _mm_cvtness_sbh(float __A) {
|
|
|
426
430
|
///
|
|
427
431
|
/// \param __A
|
|
428
432
|
/// A 128-bit vector of [8 x bfloat].
|
|
429
|
-
/// \returns A 256-bit vector of [8 x float] come from
|
|
433
|
+
/// \returns A 256-bit vector of [8 x float] come from conversion of __A
|
|
430
434
|
static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
|
|
431
435
|
return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
|
|
432
436
|
(__m256i)_mm256_cvtepi16_epi32((__m128i)__A), 16));
|
|
433
437
|
}
|
|
434
438
|
|
|
439
|
+
/// Convert Packed BF16 Data to Packed float Data using zeroing mask.
|
|
440
|
+
///
|
|
441
|
+
/// \headerfile <x86intrin.h>
|
|
442
|
+
///
|
|
443
|
+
/// \param __U
|
|
444
|
+
/// A 4-bit mask. Elements are zeroed out when the corresponding mask
|
|
445
|
+
/// bit is not set.
|
|
446
|
+
/// \param __A
|
|
447
|
+
/// A 128-bit vector of [4 x bfloat].
|
|
448
|
+
/// \returns A 128-bit vector of [4 x float] come from conversion of __A
|
|
449
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS128
|
|
450
|
+
_mm_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
|
|
451
|
+
return _mm_castsi128_ps((__m128i)_mm_slli_epi32(
|
|
452
|
+
(__m128i)_mm_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
|
|
453
|
+
}
|
|
454
|
+
|
|
435
455
|
/// Convert Packed BF16 Data to Packed float Data using zeroing mask.
|
|
436
456
|
///
|
|
437
457
|
/// \headerfile <x86intrin.h>
|
|
@@ -441,13 +461,33 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
|
|
|
441
461
|
/// bit is not set.
|
|
442
462
|
/// \param __A
|
|
443
463
|
/// A 128-bit vector of [8 x bfloat].
|
|
444
|
-
/// \returns A 256-bit vector of [8 x float] come from
|
|
464
|
+
/// \returns A 256-bit vector of [8 x float] come from conversion of __A
|
|
445
465
|
static __inline__ __m256 __DEFAULT_FN_ATTRS256
|
|
446
466
|
_mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
|
|
447
467
|
return _mm256_castsi256_ps((__m256i)_mm256_slli_epi32(
|
|
448
468
|
(__m256i)_mm256_maskz_cvtepi16_epi32((__mmask8)__U, (__m128i)__A), 16));
|
|
449
469
|
}
|
|
450
470
|
|
|
471
|
+
/// Convert Packed BF16 Data to Packed float Data using merging mask.
|
|
472
|
+
///
|
|
473
|
+
/// \headerfile <x86intrin.h>
|
|
474
|
+
///
|
|
475
|
+
/// \param __S
|
|
476
|
+
/// A 128-bit vector of [4 x float]. Elements are copied from __S when
|
|
477
|
+
/// the corresponding mask bit is not set.
|
|
478
|
+
/// \param __U
|
|
479
|
+
/// A 4-bit mask. Elements are zeroed out when the corresponding mask
|
|
480
|
+
/// bit is not set.
|
|
481
|
+
/// \param __A
|
|
482
|
+
/// A 128-bit vector of [4 x bfloat].
|
|
483
|
+
/// \returns A 128-bit vector of [4 x float] come from conversion of __A
|
|
484
|
+
static __inline__ __m128 __DEFAULT_FN_ATTRS128
|
|
485
|
+
_mm_mask_cvtpbh_ps(__m128 __S, __mmask8 __U, __m128bh __A) {
|
|
486
|
+
return _mm_castsi128_ps((__m128i)_mm_mask_slli_epi32(
|
|
487
|
+
(__m128i)__S, (__mmask8)__U, (__m128i)_mm_cvtepi16_epi32((__m128i)__A),
|
|
488
|
+
16));
|
|
489
|
+
}
|
|
490
|
+
|
|
451
491
|
/// Convert Packed BF16 Data to Packed float Data using merging mask.
|
|
452
492
|
///
|
|
453
493
|
/// \headerfile <x86intrin.h>
|
|
@@ -460,7 +500,7 @@ _mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
|
|
|
460
500
|
/// bit is not set.
|
|
461
501
|
/// \param __A
|
|
462
502
|
/// A 128-bit vector of [8 x bfloat].
|
|
463
|
-
/// \returns A 256-bit vector of [8 x float] come from
|
|
503
|
+
/// \returns A 256-bit vector of [8 x float] come from conversion of __A
|
|
464
504
|
static __inline__ __m256 __DEFAULT_FN_ATTRS256
|
|
465
505
|
_mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
|
|
466
506
|
return _mm256_castsi256_ps((__m256i)_mm256_mask_slli_epi32(
|
|
@@ -472,3 +512,4 @@ _mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
|
|
|
472
512
|
#undef __DEFAULT_FN_ATTRS256
|
|
473
513
|
|
|
474
514
|
#endif
|
|
515
|
+
#endif
|