@cpp-linter/clang-tidy-win32-x64 14.0.0 → 15.0.2
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.exe +2 -2
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_intrinsics.h +7 -7
- package/lib/clang/{14.0.0 → 15.0.2}/include/__wmmintrin_pclmul.h +10 -10
- package/lib/clang/{14.0.0 → 15.0.2}/include/altivec.h +487 -248
- package/lib/clang/{14.0.0 → 15.0.2}/include/amxintrin.h +0 -2
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_sve.h +65 -61
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx2intrin.h +8 -8
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx512bwintrin.h +12 -12
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx512fintrin.h +76 -73
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlbf16intrin.h +1 -1
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlbwintrin.h +8 -8
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlintrin.h +81 -95
- package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlvnniintrin.h +16 -16
- package/lib/clang/{14.0.0 → 15.0.2}/include/avxintrin.h +65 -30
- package/lib/clang/{14.0.0 → 15.0.2}/include/avxvnniintrin.h +16 -16
- package/lib/clang/{14.0.0 → 15.0.2}/include/bmiintrin.h +6 -2
- package/lib/clang/{14.0.0 → 15.0.2}/include/cetintrin.h +12 -6
- package/lib/clang/{14.0.0 → 15.0.2}/include/cpuid.h +1 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/emmintrin.h +549 -769
- package/lib/clang/{14.0.0 → 15.0.2}/include/f16cintrin.h +3 -3
- package/lib/clang/15.0.2/include/hlsl/hlsl_basic_types.h +64 -0
- package/lib/clang/15.0.2/include/hlsl/hlsl_intrinsics.h +15 -0
- package/lib/clang/15.0.2/include/hlsl.h +15 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/hresetintrin.h +2 -2
- package/lib/clang/{14.0.0 → 15.0.2}/include/ia32intrin.h +11 -11
- package/lib/clang/{14.0.0 → 15.0.2}/include/immintrin.h +15 -15
- package/lib/clang/{14.0.0 → 15.0.2}/include/intrin.h +12 -21
- package/lib/clang/{14.0.0 → 15.0.2}/include/keylockerintrin.h +22 -22
- package/lib/clang/{14.0.0 → 15.0.2}/include/mm_malloc.h +3 -3
- package/lib/clang/{14.0.0 → 15.0.2}/include/opencl-c-base.h +10 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/opencl-c.h +6794 -7020
- package/lib/clang/{14.0.0 → 15.0.2}/include/pmmintrin.h +1 -1
- package/lib/clang/15.0.2/include/ppc_wrappers/bmi2intrin.h +134 -0
- package/lib/clang/15.0.2/include/ppc_wrappers/bmiintrin.h +165 -0
- package/lib/clang/15.0.2/include/ppc_wrappers/emmintrin.h +2268 -0
- package/lib/clang/15.0.2/include/ppc_wrappers/immintrin.h +27 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/ppc_wrappers/mm_malloc.h +12 -17
- package/lib/clang/{14.0.0 → 15.0.2}/include/ppc_wrappers/mmintrin.h +389 -387
- package/lib/clang/15.0.2/include/ppc_wrappers/pmmintrin.h +145 -0
- package/lib/clang/15.0.2/include/ppc_wrappers/smmintrin.h +663 -0
- package/lib/clang/15.0.2/include/ppc_wrappers/tmmintrin.h +453 -0
- package/lib/clang/{14.0.0/include/stdnoreturn.h → 15.0.2/include/ppc_wrappers/x86gprintrin.h} +7 -6
- package/lib/clang/15.0.2/include/ppc_wrappers/x86intrin.h +28 -0
- package/lib/clang/15.0.2/include/ppc_wrappers/xmmintrin.h +1827 -0
- package/lib/clang/15.0.2/include/rdpruintrin.h +57 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/rdseedintrin.h +3 -3
- package/lib/clang/15.0.2/include/riscv_vector.h +202 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/rtmintrin.h +1 -1
- package/lib/clang/{14.0.0 → 15.0.2}/include/smmintrin.h +234 -257
- package/lib/clang/{14.0.0 → 15.0.2}/include/stdatomic.h +2 -5
- package/lib/clang/{14.0.0 → 15.0.2}/include/stdbool.h +9 -6
- package/lib/clang/{14.0.0 → 15.0.2}/include/stddef.h +1 -1
- package/lib/clang/15.0.2/include/stdnoreturn.h +29 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/uintrintrin.h +8 -8
- package/lib/clang/{14.0.0 → 15.0.2}/include/unwind.h +8 -5
- package/lib/clang/15.0.2/include/velintrin.h +71 -0
- package/lib/clang/15.0.2/include/velintrin_approx.h +120 -0
- package/lib/clang/15.0.2/include/velintrin_gen.h +1257 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/wasm_simd128.h +2 -2
- package/lib/clang/{14.0.0 → 15.0.2}/include/x86gprintrin.h +23 -5
- package/lib/clang/{14.0.0 → 15.0.2}/include/x86intrin.h +4 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/xmmintrin.h +9 -3
- package/package.json +6 -6
- package/lib/clang/14.0.0/include/ppc_wrappers/emmintrin.h +0 -2325
- package/lib/clang/14.0.0/include/ppc_wrappers/pmmintrin.h +0 -151
- package/lib/clang/14.0.0/include/ppc_wrappers/smmintrin.h +0 -110
- package/lib/clang/14.0.0/include/ppc_wrappers/tmmintrin.h +0 -496
- package/lib/clang/14.0.0/include/ppc_wrappers/xmmintrin.h +0 -1844
- package/lib/clang/14.0.0/include/riscv_vector.h +0 -95423
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_builtin_vars.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_cmath.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_complex_builtins.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_device_functions.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_libdevice_declares.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_math.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_math_forward_declares.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_runtime_wrapper.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_cuda_texture_intrinsics.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_hip_cmath.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_hip_libdevice_declares.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_hip_math.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__clang_hip_runtime_wrapper.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__stddef_max_align_t.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/__wmmintrin_aes.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/adxintrin.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/ammintrin.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm64intr.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_acle.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_bf16.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_cde.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_cmse.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_fp16.h +89 -89
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_mve.h +0 -0
- package/lib/clang/{14.0.0 → 15.0.2}/include/arm_neon.h +3999 -3999
- /package/lib/clang/{14.0.0 → 15.0.2}/include/arm_neon_sve_bridge.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/armintr.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512bf16intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512fp16intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512ifmavlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlfp16intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/builtins.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/cet.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/clwbintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/clzerointrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/crc32intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/float.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/fma4intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/fmaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/gfniintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/hexagon_types.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/htmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/inttypes.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/iso646.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/limits.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/lwpintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/mm3dnow.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/mmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/module.modulemap +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/movdirintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/msa.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/nmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/pkuintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/popcntintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/s390intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/serializeintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/sgxintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/shaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/stdalign.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/stdarg.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/stdint.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/tbmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/tgmath.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/tmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/vadefs.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/vaesintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/varargs.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/vecintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/wmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/xopintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 15.0.2}/include/xtestintrin.h +0 -0
|
@@ -65,9 +65,9 @@ _cvtsh_ss(unsigned short __a)
|
|
|
65
65
|
/// 011: Truncate \n
|
|
66
66
|
/// 1XX: Use MXCSR.RC for rounding
|
|
67
67
|
/// \returns The converted 16-bit half-precision float value.
|
|
68
|
-
#define _cvtss_sh(a, imm) \
|
|
69
|
-
(
|
|
70
|
-
(imm)))[0]))
|
|
68
|
+
#define _cvtss_sh(a, imm) __extension__ ({ \
|
|
69
|
+
(unsigned short)(((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, \
|
|
70
|
+
(imm)))[0]); })
|
|
71
71
|
|
|
72
72
|
/// Converts a 128-bit vector containing 32-bit float values into a
|
|
73
73
|
/// 128-bit vector containing 16-bit half-precision float values.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//===----- hlsl_basic_types.h - HLSL definitions for basic types ----------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#ifndef _HLSL_HLSL_BASIC_TYPES_H_
|
|
10
|
+
#define _HLSL_HLSL_BASIC_TYPES_H_
|
|
11
|
+
|
|
12
|
+
// built-in scalar data types:
|
|
13
|
+
|
|
14
|
+
#ifdef __HLSL_ENABLE_16_BIT
|
|
15
|
+
// 16-bit integer.
|
|
16
|
+
typedef unsigned short uint16_t;
|
|
17
|
+
typedef short int16_t;
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
// unsigned 32-bit integer.
|
|
21
|
+
typedef unsigned int uint;
|
|
22
|
+
|
|
23
|
+
// 64-bit integer.
|
|
24
|
+
typedef unsigned long uint64_t;
|
|
25
|
+
typedef long int64_t;
|
|
26
|
+
|
|
27
|
+
// built-in vector data types:
|
|
28
|
+
|
|
29
|
+
#ifdef __HLSL_ENABLE_16_BIT
|
|
30
|
+
typedef vector<int16_t, 2> int16_t2;
|
|
31
|
+
typedef vector<int16_t, 3> int16_t3;
|
|
32
|
+
typedef vector<int16_t, 4> int16_t4;
|
|
33
|
+
typedef vector<uint16_t, 2> uint16_t2;
|
|
34
|
+
typedef vector<uint16_t, 3> uint16_t3;
|
|
35
|
+
typedef vector<uint16_t, 4> uint16_t4;
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
typedef vector<int, 2> int2;
|
|
39
|
+
typedef vector<int, 3> int3;
|
|
40
|
+
typedef vector<int, 4> int4;
|
|
41
|
+
typedef vector<uint, 2> uint2;
|
|
42
|
+
typedef vector<uint, 3> uint3;
|
|
43
|
+
typedef vector<uint, 4> uint4;
|
|
44
|
+
typedef vector<int64_t, 2> int64_t2;
|
|
45
|
+
typedef vector<int64_t, 3> int64_t3;
|
|
46
|
+
typedef vector<int64_t, 4> int64_t4;
|
|
47
|
+
typedef vector<uint64_t, 2> uint64_t2;
|
|
48
|
+
typedef vector<uint64_t, 3> uint64_t3;
|
|
49
|
+
typedef vector<uint64_t, 4> uint64_t4;
|
|
50
|
+
|
|
51
|
+
#ifdef __HLSL_ENABLE_16_BIT
|
|
52
|
+
typedef vector<half, 2> half2;
|
|
53
|
+
typedef vector<half, 3> half3;
|
|
54
|
+
typedef vector<half, 4> half4;
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
typedef vector<float, 2> float2;
|
|
58
|
+
typedef vector<float, 3> float3;
|
|
59
|
+
typedef vector<float, 4> float4;
|
|
60
|
+
typedef vector<double, 2> double2;
|
|
61
|
+
typedef vector<double, 3> double3;
|
|
62
|
+
typedef vector<double, 4> double4;
|
|
63
|
+
|
|
64
|
+
#endif //_HLSL_HLSL_BASIC_TYPES_H_
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
__attribute__((clang_builtin_alias(__builtin_hlsl_wave_active_count_bits))) uint
|
|
13
|
+
WaveActiveCountBits(bool bBit);
|
|
14
|
+
|
|
15
|
+
#endif //_HLSL_HLSL_INTRINSICS_H_
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//===----- hlsl.h - HLSL definitions --------------------------------------===//
|
|
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_H_
|
|
10
|
+
#define _HLSL_H_
|
|
11
|
+
|
|
12
|
+
#include "hlsl/hlsl_basic_types.h"
|
|
13
|
+
#include "hlsl/hlsl_intrinsics.h"
|
|
14
|
+
|
|
15
|
+
#endif //_HLSL_H_
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
///
|
|
26
26
|
/// This intrinsic corresponds to the <c> HRESET </c> instruction.
|
|
27
27
|
///
|
|
28
|
-
/// \operation
|
|
28
|
+
/// \code{.operation}
|
|
29
29
|
/// IF __eax == 0
|
|
30
30
|
/// // nop
|
|
31
31
|
/// ELSE
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
/// FI
|
|
36
36
|
/// ENDFOR
|
|
37
37
|
/// FI
|
|
38
|
-
/// \
|
|
38
|
+
/// \endcode
|
|
39
39
|
static __inline void __DEFAULT_FN_ATTRS
|
|
40
40
|
_hreset(int __eax)
|
|
41
41
|
{
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
*/
|
|
41
41
|
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
42
42
|
__bsfd(int __A) {
|
|
43
|
-
return __builtin_ctz(__A);
|
|
43
|
+
return __builtin_ctz((unsigned int)__A);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/** Find the first set bit starting from the msb. Result is undefined if
|
|
@@ -57,7 +57,7 @@ __bsfd(int __A) {
|
|
|
57
57
|
*/
|
|
58
58
|
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
59
59
|
__bsrd(int __A) {
|
|
60
|
-
return 31 - __builtin_clz(__A);
|
|
60
|
+
return 31 - __builtin_clz((unsigned int)__A);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/** Swaps the bytes in the input. Converting little endian to big endian or
|
|
@@ -73,12 +73,12 @@ __bsrd(int __A) {
|
|
|
73
73
|
*/
|
|
74
74
|
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
75
75
|
__bswapd(int __A) {
|
|
76
|
-
return __builtin_bswap32(__A);
|
|
76
|
+
return (int)__builtin_bswap32((unsigned int)__A);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
80
80
|
_bswap(int __A) {
|
|
81
|
-
return __builtin_bswap32(__A);
|
|
81
|
+
return (int)__builtin_bswap32((unsigned int)__A);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
#define _bit_scan_forward(A) __bsfd((A))
|
|
@@ -99,7 +99,7 @@ _bswap(int __A) {
|
|
|
99
99
|
*/
|
|
100
100
|
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
101
101
|
__bsfq(long long __A) {
|
|
102
|
-
return __builtin_ctzll(__A);
|
|
102
|
+
return (long long)__builtin_ctzll((unsigned long long)__A);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
/** Find the first set bit starting from the msb. Result is undefined if
|
|
@@ -116,7 +116,7 @@ __bsfq(long long __A) {
|
|
|
116
116
|
*/
|
|
117
117
|
static __inline__ int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
118
118
|
__bsrq(long long __A) {
|
|
119
|
-
return 63 - __builtin_clzll(__A);
|
|
119
|
+
return 63 - __builtin_clzll((unsigned long long)__A);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
/** Swaps the bytes in the input. Converting little endian to big endian or
|
|
@@ -132,7 +132,7 @@ __bsrq(long long __A) {
|
|
|
132
132
|
*/
|
|
133
133
|
static __inline__ long long __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
134
134
|
__bswapq(long long __A) {
|
|
135
|
-
return __builtin_bswap64(__A);
|
|
135
|
+
return (long long)__builtin_bswap64((unsigned long long)__A);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
#define _bswap64(A) __bswapq((A))
|
|
@@ -395,23 +395,23 @@ __rorw(unsigned short __X, int __C) {
|
|
|
395
395
|
|
|
396
396
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
397
397
|
__rold(unsigned int __X, int __C) {
|
|
398
|
-
return __builtin_rotateleft32(__X, __C);
|
|
398
|
+
return __builtin_rotateleft32(__X, (unsigned int)__C);
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
402
402
|
__rord(unsigned int __X, int __C) {
|
|
403
|
-
return __builtin_rotateright32(__X, __C);
|
|
403
|
+
return __builtin_rotateright32(__X, (unsigned int)__C);
|
|
404
404
|
}
|
|
405
405
|
|
|
406
406
|
#ifdef __x86_64__
|
|
407
407
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
408
408
|
__rolq(unsigned long long __X, int __C) {
|
|
409
|
-
return __builtin_rotateleft64(__X, __C);
|
|
409
|
+
return __builtin_rotateleft64(__X, (unsigned long long)__C);
|
|
410
410
|
}
|
|
411
411
|
|
|
412
412
|
static __inline__ unsigned long long __DEFAULT_FN_ATTRS_CONSTEXPR
|
|
413
413
|
__rorq(unsigned long long __X, int __C) {
|
|
414
|
-
return __builtin_rotateright64(__X, __C);
|
|
414
|
+
return __builtin_rotateright64(__X, (unsigned long long)__C);
|
|
415
415
|
}
|
|
416
416
|
#endif /* __x86_64__ */
|
|
417
417
|
|
|
@@ -276,20 +276,20 @@ _rdpid_u32(void) {
|
|
|
276
276
|
static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
|
|
277
277
|
_rdrand16_step(unsigned short *__p)
|
|
278
278
|
{
|
|
279
|
-
return __builtin_ia32_rdrand16_step(__p);
|
|
279
|
+
return (int)__builtin_ia32_rdrand16_step(__p);
|
|
280
280
|
}
|
|
281
281
|
|
|
282
282
|
static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
|
|
283
283
|
_rdrand32_step(unsigned int *__p)
|
|
284
284
|
{
|
|
285
|
-
return __builtin_ia32_rdrand32_step(__p);
|
|
285
|
+
return (int)__builtin_ia32_rdrand32_step(__p);
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
#ifdef __x86_64__
|
|
289
289
|
static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
|
|
290
290
|
_rdrand64_step(unsigned long long *__p)
|
|
291
291
|
{
|
|
292
|
-
return __builtin_ia32_rdrand64_step(__p);
|
|
292
|
+
return (int)__builtin_ia32_rdrand64_step(__p);
|
|
293
293
|
}
|
|
294
294
|
#endif
|
|
295
295
|
#endif /* __RDRND__ */
|
|
@@ -360,50 +360,50 @@ _writegsbase_u64(unsigned long long __V)
|
|
|
360
360
|
static __inline__ short __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
|
|
361
361
|
_loadbe_i16(void const * __P) {
|
|
362
362
|
struct __loadu_i16 {
|
|
363
|
-
short __v;
|
|
363
|
+
unsigned short __v;
|
|
364
364
|
} __attribute__((__packed__, __may_alias__));
|
|
365
|
-
return __builtin_bswap16(((const struct __loadu_i16*)__P)->__v);
|
|
365
|
+
return (short)__builtin_bswap16(((const struct __loadu_i16*)__P)->__v);
|
|
366
366
|
}
|
|
367
367
|
|
|
368
368
|
static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
|
|
369
369
|
_storebe_i16(void * __P, short __D) {
|
|
370
370
|
struct __storeu_i16 {
|
|
371
|
-
short __v;
|
|
371
|
+
unsigned short __v;
|
|
372
372
|
} __attribute__((__packed__, __may_alias__));
|
|
373
|
-
((struct __storeu_i16*)__P)->__v = __builtin_bswap16(__D);
|
|
373
|
+
((struct __storeu_i16*)__P)->__v = __builtin_bswap16((unsigned short)__D);
|
|
374
374
|
}
|
|
375
375
|
|
|
376
376
|
static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
|
|
377
377
|
_loadbe_i32(void const * __P) {
|
|
378
378
|
struct __loadu_i32 {
|
|
379
|
-
int __v;
|
|
379
|
+
unsigned int __v;
|
|
380
380
|
} __attribute__((__packed__, __may_alias__));
|
|
381
|
-
return __builtin_bswap32(((const struct __loadu_i32*)__P)->__v);
|
|
381
|
+
return (int)__builtin_bswap32(((const struct __loadu_i32*)__P)->__v);
|
|
382
382
|
}
|
|
383
383
|
|
|
384
384
|
static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
|
|
385
385
|
_storebe_i32(void * __P, int __D) {
|
|
386
386
|
struct __storeu_i32 {
|
|
387
|
-
int __v;
|
|
387
|
+
unsigned int __v;
|
|
388
388
|
} __attribute__((__packed__, __may_alias__));
|
|
389
|
-
((struct __storeu_i32*)__P)->__v = __builtin_bswap32(__D);
|
|
389
|
+
((struct __storeu_i32*)__P)->__v = __builtin_bswap32((unsigned int)__D);
|
|
390
390
|
}
|
|
391
391
|
|
|
392
392
|
#ifdef __x86_64__
|
|
393
393
|
static __inline__ long long __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
|
|
394
394
|
_loadbe_i64(void const * __P) {
|
|
395
395
|
struct __loadu_i64 {
|
|
396
|
-
long long __v;
|
|
396
|
+
unsigned long long __v;
|
|
397
397
|
} __attribute__((__packed__, __may_alias__));
|
|
398
|
-
return __builtin_bswap64(((const struct __loadu_i64*)__P)->__v);
|
|
398
|
+
return (long long)__builtin_bswap64(((const struct __loadu_i64*)__P)->__v);
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("movbe")))
|
|
402
402
|
_storebe_i64(void * __P, long long __D) {
|
|
403
403
|
struct __storeu_i64 {
|
|
404
|
-
long long __v;
|
|
404
|
+
unsigned long long __v;
|
|
405
405
|
} __attribute__((__packed__, __may_alias__));
|
|
406
|
-
((struct __storeu_i64*)__P)->__v = __builtin_bswap64(__D);
|
|
406
|
+
((struct __storeu_i64*)__P)->__v = __builtin_bswap64((unsigned long long)__D);
|
|
407
407
|
}
|
|
408
408
|
#endif
|
|
409
409
|
#endif /* __MOVBE */
|
|
@@ -534,27 +534,6 @@ static __inline__ void __DEFAULT_FN_ATTRS __stosq(unsigned __int64 *__dst,
|
|
|
534
534
|
|* Misc
|
|
535
535
|
\*----------------------------------------------------------------------------*/
|
|
536
536
|
#if defined(__i386__) || defined(__x86_64__)
|
|
537
|
-
#if defined(__i386__)
|
|
538
|
-
#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \
|
|
539
|
-
__asm("cpuid" \
|
|
540
|
-
: "=a"(__eax), "=b"(__ebx), "=c"(__ecx), "=d"(__edx) \
|
|
541
|
-
: "0"(__leaf), "2"(__count))
|
|
542
|
-
#else
|
|
543
|
-
/* x86-64 uses %rbx as the base register, so preserve it. */
|
|
544
|
-
#define __cpuid_count(__leaf, __count, __eax, __ebx, __ecx, __edx) \
|
|
545
|
-
__asm("xchg{q} {%%rbx, %q1|%q1, rbx}\n" \
|
|
546
|
-
"cpuid\n" \
|
|
547
|
-
"xchg{q} {%%rbx, %q1|%q1, rbx}" \
|
|
548
|
-
: "=a"(__eax), "=r"(__ebx), "=c"(__ecx), "=d"(__edx) \
|
|
549
|
-
: "0"(__leaf), "2"(__count))
|
|
550
|
-
#endif
|
|
551
|
-
static __inline__ void __DEFAULT_FN_ATTRS __cpuid(int __info[4], int __level) {
|
|
552
|
-
__cpuid_count(__level, 0, __info[0], __info[1], __info[2], __info[3]);
|
|
553
|
-
}
|
|
554
|
-
static __inline__ void __DEFAULT_FN_ATTRS __cpuidex(int __info[4], int __level,
|
|
555
|
-
int __ecx) {
|
|
556
|
-
__cpuid_count(__level, __ecx, __info[0], __info[1], __info[2], __info[3]);
|
|
557
|
-
}
|
|
558
537
|
static __inline__ void __DEFAULT_FN_ATTRS __halt(void) {
|
|
559
538
|
__asm__ volatile("hlt");
|
|
560
539
|
}
|
|
@@ -581,6 +560,18 @@ unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64 val);
|
|
|
581
560
|
|
|
582
561
|
__int64 __mulh(__int64 __a, __int64 __b);
|
|
583
562
|
unsigned __int64 __umulh(unsigned __int64 __a, unsigned __int64 __b);
|
|
563
|
+
|
|
564
|
+
void __break(int);
|
|
565
|
+
|
|
566
|
+
void __writex18byte(unsigned long offset, unsigned char data);
|
|
567
|
+
void __writex18word(unsigned long offset, unsigned short data);
|
|
568
|
+
void __writex18dword(unsigned long offset, unsigned long data);
|
|
569
|
+
void __writex18qword(unsigned long offset, unsigned __int64 data);
|
|
570
|
+
|
|
571
|
+
unsigned char __readx18byte(unsigned long offset);
|
|
572
|
+
unsigned short __readx18word(unsigned long offset);
|
|
573
|
+
unsigned long __readx18dword(unsigned long offset);
|
|
574
|
+
unsigned __int64 __readx18qword(unsigned long offset);
|
|
584
575
|
#endif
|
|
585
576
|
|
|
586
577
|
/*----------------------------------------------------------------------------*\
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
///
|
|
47
47
|
/// This intrinsic corresponds to the <c> LOADIWKEY </c> instructions.
|
|
48
48
|
///
|
|
49
|
-
/// \operation
|
|
49
|
+
/// \code{.operation}
|
|
50
50
|
/// IF CPL > 0 // LOADKWKEY only allowed at ring 0 (supervisor mode)
|
|
51
51
|
/// GP (0)
|
|
52
52
|
/// FI
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
/// AF := 0
|
|
92
92
|
/// PF := 0
|
|
93
93
|
/// CF := 0
|
|
94
|
-
/// \
|
|
94
|
+
/// \endcode
|
|
95
95
|
static __inline__ void __DEFAULT_FN_ATTRS
|
|
96
96
|
_mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
|
|
97
97
|
__m128i __enkey_lo, __m128i __enkey_hi) {
|
|
@@ -106,7 +106,7 @@ _mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
|
|
|
106
106
|
///
|
|
107
107
|
/// This intrinsic corresponds to the <c> ENCODEKEY128 </c> instructions.
|
|
108
108
|
///
|
|
109
|
-
/// \operation
|
|
109
|
+
/// \code{.operation}
|
|
110
110
|
/// InputKey[127:0] := __key[127:0]
|
|
111
111
|
/// KeyMetadata[2:0] := __htype[2:0]
|
|
112
112
|
/// KeyMetadata[23:3] := 0 // Reserved for future usage
|
|
@@ -126,7 +126,7 @@ _mm_loadiwkey (unsigned int __ctl, __m128i __intkey,
|
|
|
126
126
|
/// AF := 0
|
|
127
127
|
/// PF := 0
|
|
128
128
|
/// CF := 0
|
|
129
|
-
/// \
|
|
129
|
+
/// \endcode
|
|
130
130
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
131
131
|
_mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
|
|
132
132
|
return __builtin_ia32_encodekey128_u32(__htype, (__v2di)__key, __h);
|
|
@@ -141,7 +141,7 @@ _mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
|
|
|
141
141
|
///
|
|
142
142
|
/// This intrinsic corresponds to the <c> ENCODEKEY256 </c> instructions.
|
|
143
143
|
///
|
|
144
|
-
/// \operation
|
|
144
|
+
/// \code{.operation}
|
|
145
145
|
/// InputKey[127:0] := __key_lo[127:0]
|
|
146
146
|
/// InputKey[255:128] := __key_hi[255:128]
|
|
147
147
|
/// KeyMetadata[2:0] := __htype[2:0]
|
|
@@ -163,7 +163,7 @@ _mm_encodekey128_u32(unsigned int __htype, __m128i __key, void *__h) {
|
|
|
163
163
|
/// AF := 0
|
|
164
164
|
/// PF := 0
|
|
165
165
|
/// CF := 0
|
|
166
|
-
/// \
|
|
166
|
+
/// \endcode
|
|
167
167
|
static __inline__ unsigned int __DEFAULT_FN_ATTRS
|
|
168
168
|
_mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
|
|
169
169
|
void *__h) {
|
|
@@ -179,7 +179,7 @@ _mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
|
|
|
179
179
|
///
|
|
180
180
|
/// This intrinsic corresponds to the <c> AESENC128KL </c> instructions.
|
|
181
181
|
///
|
|
182
|
-
/// \operation
|
|
182
|
+
/// \code{.operation}
|
|
183
183
|
/// Handle[383:0] := MEM[__h+383:__h] // Load is not guaranteed to be atomic.
|
|
184
184
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
|
|
185
185
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -202,7 +202,7 @@ _mm_encodekey256_u32(unsigned int __htype, __m128i __key_lo, __m128i __key_hi,
|
|
|
202
202
|
/// AF := 0
|
|
203
203
|
/// PF := 0
|
|
204
204
|
/// CF := 0
|
|
205
|
-
/// \
|
|
205
|
+
/// \endcode
|
|
206
206
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
207
207
|
_mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
208
208
|
return __builtin_ia32_aesenc128kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -216,7 +216,7 @@ _mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
216
216
|
///
|
|
217
217
|
/// This intrinsic corresponds to the <c> AESENC256KL </c> instructions.
|
|
218
218
|
///
|
|
219
|
-
/// \operation
|
|
219
|
+
/// \code{.operation}
|
|
220
220
|
/// Handle[511:0] := MEM[__h+511:__h] // Load is not guaranteed to be atomic.
|
|
221
221
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[511:0]) ||
|
|
222
222
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -241,7 +241,7 @@ _mm_aesenc128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
241
241
|
/// AF := 0
|
|
242
242
|
/// PF := 0
|
|
243
243
|
/// CF := 0
|
|
244
|
-
/// \
|
|
244
|
+
/// \endcode
|
|
245
245
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
246
246
|
_mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
247
247
|
return __builtin_ia32_aesenc256kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -255,7 +255,7 @@ _mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
255
255
|
///
|
|
256
256
|
/// This intrinsic corresponds to the <c> AESDEC128KL </c> instructions.
|
|
257
257
|
///
|
|
258
|
-
/// \operation
|
|
258
|
+
/// \code{.operation}
|
|
259
259
|
/// Handle[383:0] := MEM[__h+383:__h] // Load is not guaranteed to be atomic.
|
|
260
260
|
/// IllegalHandle := (HandleReservedBitSet (Handle[383:0]) ||
|
|
261
261
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -280,7 +280,7 @@ _mm_aesenc256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
280
280
|
/// AF := 0
|
|
281
281
|
/// PF := 0
|
|
282
282
|
/// CF := 0
|
|
283
|
-
/// \
|
|
283
|
+
/// \endcode
|
|
284
284
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
285
285
|
_mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
286
286
|
return __builtin_ia32_aesdec128kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -294,7 +294,7 @@ _mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
294
294
|
///
|
|
295
295
|
/// This intrinsic corresponds to the <c> AESDEC256KL </c> instructions.
|
|
296
296
|
///
|
|
297
|
-
/// \operation
|
|
297
|
+
/// \code{.operation}
|
|
298
298
|
/// Handle[511:0] := MEM[__h+511:__h]
|
|
299
299
|
/// IllegalHandle := (HandleReservedBitSet (Handle[511:0]) ||
|
|
300
300
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -319,7 +319,7 @@ _mm_aesdec128kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
319
319
|
/// AF := 0
|
|
320
320
|
/// PF := 0
|
|
321
321
|
/// CF := 0
|
|
322
|
-
/// \
|
|
322
|
+
/// \endcode
|
|
323
323
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
324
324
|
_mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
325
325
|
return __builtin_ia32_aesdec256kl_u8((__v2di *)__odata, (__v2di)__idata, __h);
|
|
@@ -346,7 +346,7 @@ _mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
346
346
|
///
|
|
347
347
|
/// This intrinsic corresponds to the <c> AESENCWIDE128KL </c> instructions.
|
|
348
348
|
///
|
|
349
|
-
/// \operation
|
|
349
|
+
/// \code{.operation}
|
|
350
350
|
/// Handle := MEM[__h+383:__h]
|
|
351
351
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
|
|
352
352
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -377,7 +377,7 @@ _mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) {
|
|
|
377
377
|
/// AF := 0
|
|
378
378
|
/// PF := 0
|
|
379
379
|
/// CF := 0
|
|
380
|
-
/// \
|
|
380
|
+
/// \endcode
|
|
381
381
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
382
382
|
_mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
383
383
|
return __builtin_ia32_aesencwide128kl_u8((__v2di *)__odata,
|
|
@@ -392,7 +392,7 @@ _mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
392
392
|
///
|
|
393
393
|
/// This intrinsic corresponds to the <c> AESENCWIDE256KL </c> instructions.
|
|
394
394
|
///
|
|
395
|
-
/// \operation
|
|
395
|
+
/// \code{.operation}
|
|
396
396
|
/// Handle[511:0] := MEM[__h+511:__h]
|
|
397
397
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[511:0]) ||
|
|
398
398
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -423,7 +423,7 @@ _mm_aesencwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
423
423
|
/// AF := 0
|
|
424
424
|
/// PF := 0
|
|
425
425
|
/// CF := 0
|
|
426
|
-
/// \
|
|
426
|
+
/// \endcode
|
|
427
427
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
428
428
|
_mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
429
429
|
return __builtin_ia32_aesencwide256kl_u8((__v2di *)__odata,
|
|
@@ -438,7 +438,7 @@ _mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
438
438
|
///
|
|
439
439
|
/// This intrinsic corresponds to the <c> AESDECWIDE128KL </c> instructions.
|
|
440
440
|
///
|
|
441
|
-
/// \operation
|
|
441
|
+
/// \code{.operation}
|
|
442
442
|
/// Handle[383:0] := MEM[__h+383:__h]
|
|
443
443
|
/// IllegalHandle := ( HandleReservedBitSet (Handle[383:0]) ||
|
|
444
444
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -469,7 +469,7 @@ _mm_aesencwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
469
469
|
/// AF := 0
|
|
470
470
|
/// PF := 0
|
|
471
471
|
/// CF := 0
|
|
472
|
-
/// \
|
|
472
|
+
/// \endcode
|
|
473
473
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
474
474
|
_mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
475
475
|
return __builtin_ia32_aesdecwide128kl_u8((__v2di *)__odata,
|
|
@@ -484,7 +484,7 @@ _mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
484
484
|
///
|
|
485
485
|
/// This intrinsic corresponds to the <c> AESDECWIDE256KL </c> instructions.
|
|
486
486
|
///
|
|
487
|
-
/// \operation
|
|
487
|
+
/// \code{.operation}
|
|
488
488
|
/// Handle[511:0] := MEM[__h+511:__h]
|
|
489
489
|
/// IllegalHandle = ( HandleReservedBitSet (Handle[511:0]) ||
|
|
490
490
|
/// (Handle[127:0] AND (CPL > 0)) ||
|
|
@@ -515,7 +515,7 @@ _mm_aesdecwide128kl_u8(__m128i __odata[8], const __m128i __idata[8], const void*
|
|
|
515
515
|
/// AF := 0
|
|
516
516
|
/// PF := 0
|
|
517
517
|
/// CF := 0
|
|
518
|
-
/// \
|
|
518
|
+
/// \endcode
|
|
519
519
|
static __inline__ unsigned char __DEFAULT_FN_ATTRS
|
|
520
520
|
_mm_aesdecwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* __h) {
|
|
521
521
|
return __builtin_ia32_aesdecwide256kl_u8((__v2di *)__odata,
|
|
@@ -28,9 +28,9 @@ extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size
|
|
|
28
28
|
|
|
29
29
|
#if !(defined(_WIN32) && defined(_mm_malloc))
|
|
30
30
|
static __inline__ void *__attribute__((__always_inline__, __nodebug__,
|
|
31
|
-
__malloc__)
|
|
32
|
-
|
|
33
|
-
{
|
|
31
|
+
__malloc__, __alloc_size__(1),
|
|
32
|
+
__alloc_align__(2)))
|
|
33
|
+
_mm_malloc(size_t __size, size_t __align) {
|
|
34
34
|
if (__align == 1) {
|
|
35
35
|
return malloc(__size);
|
|
36
36
|
}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#define cl_khr_subgroup_shuffle 1
|
|
22
22
|
#define cl_khr_subgroup_shuffle_relative 1
|
|
23
23
|
#define cl_khr_subgroup_clustered_reduce 1
|
|
24
|
+
#define cl_khr_subgroup_rotate 1
|
|
24
25
|
#define cl_khr_extended_bit_ops 1
|
|
25
26
|
#define cl_khr_integer_dot_product 1
|
|
26
27
|
#define __opencl_c_integer_dot_product_input_4x8bit 1
|
|
@@ -67,6 +68,7 @@
|
|
|
67
68
|
#if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300)
|
|
68
69
|
// For the SPIR and SPIR-V target all features are supported.
|
|
69
70
|
#if defined(__SPIR__) || defined(__SPIRV__)
|
|
71
|
+
#define __opencl_c_work_group_collective_functions 1
|
|
70
72
|
#define __opencl_c_atomic_order_seq_cst 1
|
|
71
73
|
#define __opencl_c_atomic_scope_device 1
|
|
72
74
|
#define __opencl_c_atomic_scope_all_devices 1
|
|
@@ -80,6 +82,11 @@
|
|
|
80
82
|
#define __opencl_c_named_address_space_builtins 1
|
|
81
83
|
#endif // !defined(__opencl_c_generic_address_space)
|
|
82
84
|
|
|
85
|
+
#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
|
|
86
|
+
// Internal feature macro to provide subgroup builtins.
|
|
87
|
+
#define __opencl_subgroup_builtins 1
|
|
88
|
+
#endif
|
|
89
|
+
|
|
83
90
|
// built-in scalar data types:
|
|
84
91
|
|
|
85
92
|
/**
|
|
@@ -197,6 +204,9 @@ typedef double double8 __attribute__((ext_vector_type(8)));
|
|
|
197
204
|
typedef double double16 __attribute__((ext_vector_type(16)));
|
|
198
205
|
#endif
|
|
199
206
|
|
|
207
|
+
// An internal alias for half, for use by OpenCLBuiltins.td.
|
|
208
|
+
#define __half half
|
|
209
|
+
|
|
200
210
|
#if defined(__OPENCL_CPP_VERSION__)
|
|
201
211
|
#define NULL nullptr
|
|
202
212
|
#elif defined(__OPENCL_C_VERSION__)
|