@cpp-linter/clang-tidy-win32-x64 14.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.exe +2 -2
- package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_intrinsics.h +7 -7
- package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_texture_intrinsics.h +2 -0
- package/lib/clang/{14.0.0 → 16}/include/__clang_hip_libdevice_declares.h +5 -0
- package/lib/clang/{14.0.0 → 16}/include/__clang_hip_math.h +10 -13
- package/lib/clang/{14.0.0 → 16}/include/__clang_hip_runtime_wrapper.h +1 -0
- package/lib/clang/16/include/__clang_hip_stdlib.h +43 -0
- package/lib/clang/{14.0.0 → 16}/include/__wmmintrin_pclmul.h +10 -10
- package/lib/clang/{14.0.0 → 16}/include/altivec.h +501 -262
- package/lib/clang/16/include/amxfp16intrin.h +58 -0
- package/lib/clang/{14.0.0 → 16}/include/amxintrin.h +32 -2
- package/lib/clang/{14.0.0 → 16}/include/arm_acle.h +76 -75
- package/lib/clang/{14.0.0 → 16}/include/arm_fp16.h +90 -90
- package/lib/clang/{14.0.0 → 16}/include/arm_neon.h +28468 -28638
- package/lib/clang/{14.0.0 → 16}/include/arm_neon_sve_bridge.h +0 -2
- package/lib/clang/{14.0.0 → 16}/include/arm_sve.h +7848 -7996
- package/lib/clang/{14.0.0 → 16}/include/avx2intrin.h +8 -8
- package/lib/clang/{14.0.0 → 16}/include/avx512bf16intrin.h +18 -15
- package/lib/clang/{14.0.0 → 16}/include/avx512bwintrin.h +12 -12
- package/lib/clang/{14.0.0 → 16}/include/avx512fintrin.h +78 -75
- package/lib/clang/{14.0.0 → 16}/include/avx512fp16intrin.h +6 -9
- package/lib/clang/{14.0.0 → 16}/include/avx512ifmavlintrin.h +13 -27
- package/lib/clang/{14.0.0 → 16}/include/avx512vlbf16intrin.h +31 -38
- package/lib/clang/{14.0.0 → 16}/include/avx512vlbwintrin.h +360 -8
- package/lib/clang/{14.0.0 → 16}/include/avx512vlfp16intrin.h +3 -0
- package/lib/clang/{14.0.0 → 16}/include/avx512vlintrin.h +81 -95
- package/lib/clang/{14.0.0 → 16}/include/avx512vlvnniintrin.h +16 -16
- package/lib/clang/16/include/avxifmaintrin.h +177 -0
- package/lib/clang/{14.0.0 → 16}/include/avxintrin.h +77 -32
- package/lib/clang/16/include/avxneconvertintrin.h +484 -0
- package/lib/clang/16/include/avxvnniint8intrin.h +471 -0
- package/lib/clang/{14.0.0 → 16}/include/avxvnniintrin.h +16 -16
- package/lib/clang/{14.0.0 → 16}/include/bmiintrin.h +6 -2
- package/lib/clang/{14.0.0 → 16}/include/cetintrin.h +12 -6
- package/lib/clang/16/include/cmpccxaddintrin.h +70 -0
- package/lib/clang/{14.0.0 → 16}/include/cpuid.h +12 -1
- package/lib/clang/16/include/cuda_wrappers/cmath +90 -0
- package/lib/clang/{14.0.0 → 16}/include/emmintrin.h +559 -769
- package/lib/clang/{14.0.0 → 16}/include/f16cintrin.h +3 -3
- package/lib/clang/{14.0.0 → 16}/include/float.h +17 -10
- package/lib/clang/{14.0.0 → 16}/include/gfniintrin.h +7 -5
- 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/{14.0.0 → 16}/include/hresetintrin.h +2 -2
- package/lib/clang/{14.0.0 → 16}/include/ia32intrin.h +11 -11
- package/lib/clang/{14.0.0 → 16}/include/immintrin.h +56 -24
- package/lib/clang/{14.0.0 → 16}/include/intrin.h +12 -21
- package/lib/clang/{14.0.0 → 16}/include/keylockerintrin.h +22 -22
- package/lib/clang/16/include/larchintrin.h +234 -0
- package/lib/clang/{14.0.0 → 16}/include/limits.h +3 -2
- package/lib/clang/{14.0.0 → 16}/include/mm_malloc.h +3 -3
- package/lib/clang/{14.0.0 → 16}/include/opencl-c-base.h +29 -0
- package/lib/clang/{14.0.0 → 16}/include/opencl-c.h +6904 -7100
- package/lib/clang/{14.0.0 → 16}/include/pmmintrin.h +1 -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/{14.0.0 → 16}/include/ppc_wrappers/mm_malloc.h +12 -17
- package/lib/clang/{14.0.0 → 16}/include/ppc_wrappers/mmintrin.h +389 -387
- 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/{14.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/16/include/raointintrin.h +203 -0
- package/lib/clang/16/include/rdpruintrin.h +57 -0
- package/lib/clang/{14.0.0 → 16}/include/rdseedintrin.h +3 -3
- package/lib/clang/16/include/riscv_vector.h +211 -0
- package/lib/clang/{14.0.0 → 16}/include/rtmintrin.h +1 -1
- package/lib/clang/{14.0.0 → 16}/include/smmintrin.h +236 -259
- package/lib/clang/{14.0.0 → 16}/include/stdarg.h +23 -7
- package/lib/clang/{14.0.0 → 16}/include/stdatomic.h +7 -7
- package/lib/clang/{14.0.0 → 16}/include/stdbool.h +10 -7
- package/lib/clang/{14.0.0 → 16}/include/stddef.h +9 -2
- package/lib/clang/{14.0.0 → 16}/include/stdint.h +158 -40
- package/lib/clang/16/include/stdnoreturn.h +29 -0
- package/lib/clang/{14.0.0 → 16}/include/uintrintrin.h +8 -8
- package/lib/clang/{14.0.0 → 16}/include/unwind.h +10 -6
- 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/{14.0.0 → 16}/include/wasm_simd128.h +2 -2
- package/lib/clang/16/include/x86gprintrin.h +65 -0
- package/lib/clang/{14.0.0 → 16}/include/x86intrin.h +4 -0
- package/lib/clang/{14.0.0 → 16}/include/xmmintrin.h +10 -5
- 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/include/x86gprintrin.h +0 -35
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_builtin_vars.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_cmath.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_complex_builtins.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_device_functions.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_libdevice_declares.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_math.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_math_forward_declares.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_cuda_runtime_wrapper.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__clang_hip_cmath.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__stddef_max_align_t.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/__wmmintrin_aes.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/adxintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/ammintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/arm64intr.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/arm_bf16.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/arm_cde.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/arm_cmse.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/arm_mve.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/armintr.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512bitalgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512cdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512dqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512erintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512ifmaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512pfintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vbmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vbmiintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vbmivlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vlbitalgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vlcdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vldqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vlvbmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vlvp2intersectintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vnniintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vp2intersectintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vpopcntdqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/avx512vpopcntdqvlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/bmi2intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/builtins.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/cet.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/cldemoteintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/clflushoptintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/clwbintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/clzerointrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/crc32intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/cuda_wrappers/algorithm +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/cuda_wrappers/complex +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/cuda_wrappers/new +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/enqcmdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/fma4intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/fmaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/fxsrintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/hexagon_circ_brev_intrinsics.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/hexagon_protos.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/hexagon_types.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/htmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/htmxlintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/hvx_hexagon_protos.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/inttypes.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/invpcidintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/iso646.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/lwpintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/lzcntintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/mm3dnow.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/mmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/module.modulemap +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/movdirintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/msa.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/mwaitxintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/nmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/__clang_openmp_device_functions.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/cmath +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/complex +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/complex.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/complex_cmath.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/math.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/openmp_wrappers/new +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/pconfigintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/pkuintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/popcntintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/prfchwintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/ptwriteintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/s390intrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/serializeintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/sgxintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/shaintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/stdalign.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/tbmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/tgmath.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/tmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/tsxldtrkintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/vadefs.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/vaesintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/varargs.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/vecintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/vpclmulqdqintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/waitpkgintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/wbnoinvdintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/wmmintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/xopintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/xsavecintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/xsaveintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/xsaveoptintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/xsavesintrin.h +0 -0
- /package/lib/clang/{14.0.0 → 16}/include/xtestintrin.h +0 -0
|
@@ -62,9 +62,11 @@ typedef intptr_t _sleb128_t;
|
|
|
62
62
|
typedef uintptr_t _uleb128_t;
|
|
63
63
|
|
|
64
64
|
struct _Unwind_Context;
|
|
65
|
-
#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) ||
|
|
65
|
+
#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || \
|
|
66
|
+
defined(__ARM_DWARF_EH__) || defined(__SEH__))
|
|
66
67
|
struct _Unwind_Control_Block;
|
|
67
|
-
typedef struct _Unwind_Control_Block
|
|
68
|
+
typedef struct _Unwind_Control_Block _Unwind_Control_Block;
|
|
69
|
+
#define _Unwind_Exception _Unwind_Control_Block /* Alias */
|
|
68
70
|
#else
|
|
69
71
|
struct _Unwind_Exception;
|
|
70
72
|
typedef struct _Unwind_Exception _Unwind_Exception;
|
|
@@ -72,7 +74,7 @@ typedef struct _Unwind_Exception _Unwind_Exception;
|
|
|
72
74
|
typedef enum {
|
|
73
75
|
_URC_NO_REASON = 0,
|
|
74
76
|
#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
|
|
75
|
-
!defined(__ARM_DWARF_EH__)
|
|
77
|
+
!defined(__ARM_DWARF_EH__) && !defined(__SEH__)
|
|
76
78
|
_URC_OK = 0, /* used by ARM EHABI */
|
|
77
79
|
#endif
|
|
78
80
|
_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
|
|
@@ -86,7 +88,7 @@ typedef enum {
|
|
|
86
88
|
_URC_INSTALL_CONTEXT = 7,
|
|
87
89
|
_URC_CONTINUE_UNWIND = 8,
|
|
88
90
|
#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
|
|
89
|
-
!defined(__ARM_DWARF_EH__)
|
|
91
|
+
!defined(__ARM_DWARF_EH__) && !defined(__SEH__)
|
|
90
92
|
_URC_FAILURE = 9 /* used by ARM EHABI */
|
|
91
93
|
#endif
|
|
92
94
|
} _Unwind_Reason_Code;
|
|
@@ -103,7 +105,8 @@ typedef enum {
|
|
|
103
105
|
typedef void (*_Unwind_Exception_Cleanup_Fn)(_Unwind_Reason_Code,
|
|
104
106
|
_Unwind_Exception *);
|
|
105
107
|
|
|
106
|
-
#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) ||
|
|
108
|
+
#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || \
|
|
109
|
+
defined(__ARM_DWARF_EH__) || defined(__SEH__))
|
|
107
110
|
typedef struct _Unwind_Control_Block _Unwind_Control_Block;
|
|
108
111
|
typedef uint32_t _Unwind_EHT_Header;
|
|
109
112
|
|
|
@@ -167,7 +170,8 @@ typedef _Unwind_Personality_Fn __personality_routine;
|
|
|
167
170
|
typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)(struct _Unwind_Context *,
|
|
168
171
|
void *);
|
|
169
172
|
|
|
170
|
-
#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) ||
|
|
173
|
+
#if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || \
|
|
174
|
+
defined(__ARM_DWARF_EH__) || defined(__SEH__))
|
|
171
175
|
typedef enum {
|
|
172
176
|
_UVRSC_CORE = 0, /* integer register */
|
|
173
177
|
_UVRSC_VFP = 1, /* vfp */
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*===---- velintrin.h - VEL intrinsics for VE ------------------------------===
|
|
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 __VEL_INTRIN_H__
|
|
10
|
+
#define __VEL_INTRIN_H__
|
|
11
|
+
|
|
12
|
+
// Vector registers
|
|
13
|
+
typedef double __vr __attribute__((__vector_size__(2048)));
|
|
14
|
+
|
|
15
|
+
// Vector mask registers
|
|
16
|
+
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
|
17
|
+
// For C99
|
|
18
|
+
typedef _Bool __vm __attribute__((ext_vector_type(256)));
|
|
19
|
+
typedef _Bool __vm256 __attribute__((ext_vector_type(256)));
|
|
20
|
+
typedef _Bool __vm512 __attribute__((ext_vector_type(512)));
|
|
21
|
+
#else
|
|
22
|
+
#ifdef __cplusplus
|
|
23
|
+
// For C++
|
|
24
|
+
typedef bool __vm __attribute__((ext_vector_type(256)));
|
|
25
|
+
typedef bool __vm256 __attribute__((ext_vector_type(256)));
|
|
26
|
+
typedef bool __vm512 __attribute__((ext_vector_type(512)));
|
|
27
|
+
#else
|
|
28
|
+
#error need C++ or C99 to use vector intrinsics for VE
|
|
29
|
+
#endif
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
enum VShuffleCodes {
|
|
33
|
+
VE_VSHUFFLE_YUYU = 0,
|
|
34
|
+
VE_VSHUFFLE_YUYL = 1,
|
|
35
|
+
VE_VSHUFFLE_YUZU = 2,
|
|
36
|
+
VE_VSHUFFLE_YUZL = 3,
|
|
37
|
+
VE_VSHUFFLE_YLYU = 4,
|
|
38
|
+
VE_VSHUFFLE_YLYL = 5,
|
|
39
|
+
VE_VSHUFFLE_YLZU = 6,
|
|
40
|
+
VE_VSHUFFLE_YLZL = 7,
|
|
41
|
+
VE_VSHUFFLE_ZUYU = 8,
|
|
42
|
+
VE_VSHUFFLE_ZUYL = 9,
|
|
43
|
+
VE_VSHUFFLE_ZUZU = 10,
|
|
44
|
+
VE_VSHUFFLE_ZUZL = 11,
|
|
45
|
+
VE_VSHUFFLE_ZLYU = 12,
|
|
46
|
+
VE_VSHUFFLE_ZLYL = 13,
|
|
47
|
+
VE_VSHUFFLE_ZLZU = 14,
|
|
48
|
+
VE_VSHUFFLE_ZLZL = 15,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Use generated intrinsic name definitions
|
|
52
|
+
#include <velintrin_gen.h>
|
|
53
|
+
|
|
54
|
+
// Use helper functions
|
|
55
|
+
#include <velintrin_approx.h>
|
|
56
|
+
|
|
57
|
+
// pack
|
|
58
|
+
|
|
59
|
+
#define _vel_pack_f32p __builtin_ve_vl_pack_f32p
|
|
60
|
+
#define _vel_pack_f32a __builtin_ve_vl_pack_f32a
|
|
61
|
+
|
|
62
|
+
static inline unsigned long int _vel_pack_i32(unsigned int a, unsigned int b) {
|
|
63
|
+
return (((unsigned long int)a) << 32) | b;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#define _vel_extract_vm512u(vm) __builtin_ve_vl_extract_vm512u(vm)
|
|
67
|
+
#define _vel_extract_vm512l(vm) __builtin_ve_vl_extract_vm512l(vm)
|
|
68
|
+
#define _vel_insert_vm512u(vm512, vm) __builtin_ve_vl_insert_vm512u(vm512, vm)
|
|
69
|
+
#define _vel_insert_vm512l(vm512, vm) __builtin_ve_vl_insert_vm512l(vm512, vm)
|
|
70
|
+
|
|
71
|
+
#endif
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/*===---- velintrin_approx.h - VEL intrinsics helper for VE ----------------===
|
|
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 __VEL_INTRIN_APPROX_H__
|
|
10
|
+
#define __VEL_INTRIN_APPROX_H__
|
|
11
|
+
|
|
12
|
+
static inline __vr _vel_approx_vfdivs_vvvl(__vr v0, __vr v1, int l) {
|
|
13
|
+
float s0;
|
|
14
|
+
__vr v2, v3, v4, v5;
|
|
15
|
+
v5 = _vel_vrcps_vvl(v1, l);
|
|
16
|
+
s0 = 1.0;
|
|
17
|
+
v4 = _vel_vfnmsbs_vsvvl(s0, v1, v5, l);
|
|
18
|
+
v3 = _vel_vfmads_vvvvl(v5, v5, v4, l);
|
|
19
|
+
v2 = _vel_vfmuls_vvvl(v0, v3, l);
|
|
20
|
+
v4 = _vel_vfnmsbs_vvvvl(v0, v2, v1, l);
|
|
21
|
+
v2 = _vel_vfmads_vvvvl(v2, v5, v4, l);
|
|
22
|
+
v0 = _vel_vfnmsbs_vvvvl(v0, v2, v1, l);
|
|
23
|
+
v0 = _vel_vfmads_vvvvl(v2, v3, v0, l);
|
|
24
|
+
return v0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static inline __vr _vel_approx_pvfdiv_vvvl(__vr v0, __vr v1, int l) {
|
|
28
|
+
float s0;
|
|
29
|
+
__vr v2, v3, v4, v5;
|
|
30
|
+
v5 = _vel_pvrcp_vvl(v1, l);
|
|
31
|
+
s0 = 1.0;
|
|
32
|
+
v4 = _vel_pvfnmsb_vsvvl(s0, v1, v5, l);
|
|
33
|
+
v3 = _vel_pvfmad_vvvvl(v5, v5, v4, l);
|
|
34
|
+
v2 = _vel_pvfmul_vvvl(v0, v3, l);
|
|
35
|
+
v4 = _vel_pvfnmsb_vvvvl(v0, v2, v1, l);
|
|
36
|
+
v2 = _vel_pvfmad_vvvvl(v2, v5, v4, l);
|
|
37
|
+
v0 = _vel_pvfnmsb_vvvvl(v0, v2, v1, l);
|
|
38
|
+
v0 = _vel_pvfmad_vvvvl(v2, v3, v0, l);
|
|
39
|
+
return v0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static inline __vr _vel_approx_vfdivs_vsvl(float s0, __vr v0, int l) {
|
|
43
|
+
float s1;
|
|
44
|
+
__vr v1, v2, v3, v4;
|
|
45
|
+
v4 = _vel_vrcps_vvl(v0, l);
|
|
46
|
+
s1 = 1.0;
|
|
47
|
+
v2 = _vel_vfnmsbs_vsvvl(s1, v0, v4, l);
|
|
48
|
+
v2 = _vel_vfmads_vvvvl(v4, v4, v2, l);
|
|
49
|
+
v1 = _vel_vfmuls_vsvl(s0, v2, l);
|
|
50
|
+
v3 = _vel_vfnmsbs_vsvvl(s0, v1, v0, l);
|
|
51
|
+
v1 = _vel_vfmads_vvvvl(v1, v4, v3, l);
|
|
52
|
+
v3 = _vel_vfnmsbs_vsvvl(s0, v1, v0, l);
|
|
53
|
+
v0 = _vel_vfmads_vvvvl(v1, v2, v3, l);
|
|
54
|
+
return v0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static inline __vr _vel_approx_vfdivs_vvsl(__vr v0, float s0, int l) {
|
|
58
|
+
float s1;
|
|
59
|
+
__vr v1, v2;
|
|
60
|
+
s1 = 1.0f / s0;
|
|
61
|
+
v1 = _vel_vfmuls_vsvl(s1, v0, l);
|
|
62
|
+
v2 = _vel_vfnmsbs_vvsvl(v0, s0, v1, l);
|
|
63
|
+
v0 = _vel_vfmads_vvsvl(v1, s1, v2, l);
|
|
64
|
+
return v0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static inline __vr _vel_approx_vfdivd_vsvl(double s0, __vr v0, int l) {
|
|
68
|
+
__vr v1, v2, v3;
|
|
69
|
+
v2 = _vel_vrcpd_vvl(v0, l);
|
|
70
|
+
double s1 = 1.0;
|
|
71
|
+
v3 = _vel_vfnmsbd_vsvvl(s1, v0, v2, l);
|
|
72
|
+
v2 = _vel_vfmadd_vvvvl(v2, v2, v3, l);
|
|
73
|
+
v1 = _vel_vfnmsbd_vsvvl(s1, v0, v2, l);
|
|
74
|
+
v1 = _vel_vfmadd_vvvvl(v2, v2, v1, l);
|
|
75
|
+
v1 = _vel_vaddul_vsvl(1, v1, l);
|
|
76
|
+
v3 = _vel_vfnmsbd_vsvvl(s1, v0, v1, l);
|
|
77
|
+
v3 = _vel_vfmadd_vvvvl(v1, v1, v3, l);
|
|
78
|
+
v1 = _vel_vfmuld_vsvl(s0, v3, l);
|
|
79
|
+
v0 = _vel_vfnmsbd_vsvvl(s0, v1, v0, l);
|
|
80
|
+
v0 = _vel_vfmadd_vvvvl(v1, v3, v0, l);
|
|
81
|
+
return v0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static inline __vr _vel_approx_vfsqrtd_vvl(__vr v0, int l) {
|
|
85
|
+
double s0, s1;
|
|
86
|
+
__vr v1, v2, v3;
|
|
87
|
+
v2 = _vel_vrsqrtdnex_vvl(v0, l);
|
|
88
|
+
v1 = _vel_vfmuld_vvvl(v0, v2, l);
|
|
89
|
+
s0 = 1.0;
|
|
90
|
+
s1 = 0.5;
|
|
91
|
+
v3 = _vel_vfnmsbd_vsvvl(s0, v1, v2, l);
|
|
92
|
+
v3 = _vel_vfmuld_vsvl(s1, v3, l);
|
|
93
|
+
v2 = _vel_vfmadd_vvvvl(v2, v2, v3, l);
|
|
94
|
+
v1 = _vel_vfmuld_vvvl(v0, v2, l);
|
|
95
|
+
v3 = _vel_vfnmsbd_vsvvl(s0, v1, v2, l);
|
|
96
|
+
v3 = _vel_vfmuld_vsvl(s1, v3, l);
|
|
97
|
+
v0 = _vel_vfmadd_vvvvl(v1, v1, v3, l);
|
|
98
|
+
return v0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
static inline __vr _vel_approx_vfsqrts_vvl(__vr v0, int l) {
|
|
102
|
+
float s0, s1;
|
|
103
|
+
__vr v1, v2, v3;
|
|
104
|
+
v0 = _vel_vcvtds_vvl(v0, l);
|
|
105
|
+
v2 = _vel_vrsqrtdnex_vvl(v0, l);
|
|
106
|
+
v1 = _vel_vfmuld_vvvl(v0, v2, l);
|
|
107
|
+
s0 = 1.0;
|
|
108
|
+
s1 = 0.5;
|
|
109
|
+
v3 = _vel_vfnmsbd_vsvvl(s0, v1, v2, l);
|
|
110
|
+
v3 = _vel_vfmuld_vsvl(s1, v3, l);
|
|
111
|
+
v2 = _vel_vfmadd_vvvvl(v2, v2, v3, l);
|
|
112
|
+
v1 = _vel_vfmuld_vvvl(v0, v2, l);
|
|
113
|
+
v3 = _vel_vfnmsbd_vsvvl(s0, v1, v2, l);
|
|
114
|
+
v3 = _vel_vfmuld_vsvl(s1, v3, l);
|
|
115
|
+
v0 = _vel_vfmadd_vvvvl(v1, v1, v3, l);
|
|
116
|
+
v0 = _vel_vcvtsd_vvl(v0, l);
|
|
117
|
+
return v0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#endif
|